Автор Тема: Допилить оберон под себя  (Прочитано 24317 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:Допилить оберон под себя
« Ответ #30 : Март 11, 2011, 04:35:20 pm »
Ну я и говорю. битсинтаксис аля erlang. Ибо кошерно уж дюже. И ошибок позволяет избежать.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Допилить оберон под себя
« Ответ #31 : Март 12, 2011, 05:45:10 am »
Как я уже писал выше, дополнительные потоки создаются вручную, путём вызова соответсвующих функций WinAPI (если речь о винде). Суть предложения Валерия Лаптева я понял так, что эти вызовы будут встаиваться самим компилятором. Нужен новый поток в приложении?, - пометил модуль ключевым словом PARALLEL, и всё! Если я не так понял, пусть Валерий меня поправит.

Вот и связь с обсуждаемым вопросом  ;) С процессами этот фокус точно не пройдёт.
Как раз с процессами и пройдет. Только нужно этот механизм встроить непосредственно в среду ББ, которая сейчас фактически является однозадачной осью. Загружает и исполняет один модуль-процесс, в котором запускается одна процедура-поток (тред). Слово parallel для многопоточного ББ и будет означать, чтобы запускал параллельно. А  процедуры в модуле - это точный аналог треда, как они описаны в винде. Параллельный поток с общей памятью.

Конечно, для параллельных модулей надо додумать инкапсуляцию. Пока получается, что по умолчанию все внутри модуля является приватным. Кроме процедур-потоков.

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Допилить оберон под себя
« Ответ #32 : Март 12, 2011, 02:19:45 pm »
Загружает и исполняет один модуль-процесс, в котором запускается одна процедура-поток (тред).
(Выделение моё). Как же будет осуществляться обмен данными между модулями-процессами? (Механизм экспорта-импорта модулей.) Ведь память процессов вроде изолирована друг от друга. Хотите использовать файлы, отображаемые в память? А в Линуксе их вроде нет, как там быть?

Хотя, ладно.
Я считаю, что любая идея, даже самая казалось бы сумасшедшая, имеет право на жизнь. Если дело дойдёт до реализации, то все вопросы, которые я тут поднимаю, так или иначе будут решены. Либо возникнет другая идея.  :)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:Допилить оберон под себя
« Ответ #33 : Март 12, 2011, 02:22:27 pm »
Загружает и исполняет один модуль-процесс, в котором запускается одна процедура-поток (тред).
(Выделение моё). Как же будет осуществляться обмен данными между модулями-процессами? (Механизм экспорта-импорта модулей.) Ведь память процессов вроде изолирована друг от друга. Хотите использовать файлы, отображаемые в память? А в Линуксе их вроде нет, как там быть?
Есть. mmap никто не отменял. Она есть везде где поддерживается posix.
Вообще, IPC механизмов множество. Те же пайпы например. Unix domain sockets и так далее.

PS. Это просто техническое замечание.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Допилить оберон под себя
« Ответ #34 : Март 12, 2011, 02:55:08 pm »
Хотите использовать файлы, отображаемые в память? А в Линуксе их вроде нет, как там быть?
Есть. mmap никто не отменял. Она есть везде где поддерживается posix.
Спасибо. Буду знать теперь.