Comments 41
Срач в комментах утроился, ага. К счастью, Kemet — вроде бы новый человек, и будем надеяться, что тут обсуждение выйдет более продуктивным.
Ну, Активный Оберон, в отличии от Великого Оберона, интересен скорее наличием фич, чем их отсутствием.
Я бы не стал смешивать эти языки.
Я бы не стал смешивать эти языки.
А вот Active Oberon я практически не смотрел. Спасибо, интересно.
То есть, выходит, семантическу многих конструкций определяет в нем что-то типа прагм или аннотаций по месту?
То есть, выходит, семантическу многих конструкций определяет в нем что-то типа прагм или аннотаций по месту?
Тонко.
В Активном Обероне применяется автоматическое управление памятью, с использованием сборщика мусора реального времени. Это значит, что активности реального времени могут приостанавливать процесс сборки мусора. В участках кода реального времени запрещены операции выделения памяти за этим следит компилятор. Процедуры, методы и активности реального времени помечаются модификатором REALTIME. Не все реализации компилятора и среды выполнения поддерживают процессы реального времени.
Вот это действительно круто. Я время от времени думаю, почему в Rust не хотят сделать аннотаций «не выделяет память», чтобы как раз помечать функции, безопасные для использования в контексте какого-нибудь обработчика сигналов, например.
Ну и вообще, ради этого параграфа стоило прочитать публикацию. Только что узнал об Обероне больше, чем за последнюю неделю общения с его пользователями (не с вами).
Ещё: так работает любой Оберон, или именно Активный?
Правильно я понимаю, что язык по сути неотделим от среды исполнения, которая, можно сказать, является одновременно ОС и IDE? У меня сложилось впечатление, что Оберон-Система — это вот про это.
Можно ли использовать Активный Оберон (или любой Оберон) на Линуксе?
Ещё: так работает любой Оберон, или именно Активный?
Именно Активный. Active Oberon это отдельный ЯП, дальнейшее развитие системы и языка в стенах Швейцарской высшей технической школы Цюриха
Использова Active Oberon в линуксе или винде можно, примерно также как можно использовать смалтолк/squeak. Хотя Kemet лучше расскажет, возможно там есть реализации которые не тащат с собой например всю среду.
В плане любых оберонов — там разное бывает. Во-первых есть реализации ОС Оберон в виде приложения (не эмулятора, а именно приложения, опять же, привет smalltalk/squeak только с учетом того, что Оберон компиляется в реальные машкоды целевой архитектуры, например x86 — никаких эмуляторов). А во-вторых довольно много самых разных компиляторов оберона и оберона-2, как в x86, так и в Си например.
То есть Оберон (не Active — про Active я лично просто не в курсе) бывает без среды под винду или линукс. В качестве IDE были какие-то плагины к eclipse, ну или можно использовать Sublime Text. Мною к sublime был даже плагин писан для того, чтобы было удобней код набирать (в частности ключевые слова там становились КАПСОМ автоматом, не нужно никаких шифтов жать).
Сборщик мусора реального времени есть для среды времени выполнения Активного Оберона ( в варианте реализации этой среды в ОС A2, в которой есть подсистема реального времени ) и для классического Оберона в реализации XOberon — ОСРВ на базе Oberon System
Для функционирования программ на Активном Обероне достаточно использовать среду времени выполнения (RTL):
Trace.Mod — Low-level trace output based on KernelLog
*.Machine.Mod — Bootstrapping, configuration and machine interface
Heaps.Mod — Heap management and garbage collector
Modules.Mod — Modules and types
Objects.Mod — Active object runtime support
Kernel.Mod — Implementation-independent kernel interface
Использовать АО(Активный Оберон) на ОС, отличных от A2, можно посредством вариантов A2, работающих поверх Windows, Unix/Linux/Darwin — там вся A2, за исключением железа, но работают и сетевые протоколы и сервисы и медиа. Можно собрать консольную программу, оставив рантайм и свой код.
Из других Оберонов под Линукс можно использовать OO2C или XDS
Для функционирования программ на Активном Обероне достаточно использовать среду времени выполнения (RTL):
Trace.Mod — Low-level trace output based on KernelLog
*.Machine.Mod — Bootstrapping, configuration and machine interface
Heaps.Mod — Heap management and garbage collector
Modules.Mod — Modules and types
Objects.Mod — Active object runtime support
Kernel.Mod — Implementation-independent kernel interface
Использовать АО(Активный Оберон) на ОС, отличных от A2, можно посредством вариантов A2, работающих поверх Windows, Unix/Linux/Darwin — там вся A2, за исключением железа, но работают и сетевые протоколы и сервисы и медиа. Можно собрать консольную программу, оставив рантайм и свой код.
Из других Оберонов под Линукс можно использовать OO2C или XDS
А моя консольная программа будет линковаться к рантайму как к динамической библиотеке? Или там что-то похожее на большую виртуальную машину типа Java?
Забыл, есть ещё Oxford Oberon-2 Compiler, который в том числе и под Линукс
Я время от времени думаю, почему в Rust не хотят сделать аннотаций «не выделяет память», чтобы как раз помечать функции
На самом деле, кода в Rust ещё использовалась концепция typestate, почти так оно и было. Потом от typestate отказались, потому что она приводит к проблемам с композицей (вот здесь есть ещё информация). Та же самая штука была с pure-функциями (они тоже были, и от них тоже отказались).
- Сделать виртуалов
- Неделю писать с них всякий неадекват
- Написать нормальный пост с настоящего пользователя
- На контрасте получить отличные оценки (ура, не все пользователи Оберона — сумасшедшие фрики!)
- PROFIT
Это шутка, конечно.
Добавил в статью ссылку на форум поддержки, там, в принципе, есть ссылки на свежие сборки нативной A2, WinAOS, UnixAos
У меня только один вопрос — кто-то запилил уже нормальную IDE, или это все так и осталось на уровне наколенных поделок?
Смотря что под нормальной IDE подразумевать :-) Вот Sublime Text — это нормальная IDE? А допустим гошная LiteIDE? А Code::Blocks? А vim? А CLion?
Скажи что нужно, расскажем что есть, а чего нет, но что есть вместо этого.
Скажи что нужно, расскажем что есть, а чего нет, но что есть вместо этого.
Сейчас у меня есть куча древнего кода на Oberon 2, который можно компилить только при помощи кросс-компилятора под MC68332 из совершенно эзотерической среды этого самого Oberon под Win (где половина операций по средней кнопке мыши). Поэтому правки кода я делаю в pspad, а для компиляции запускаю среду. Учитывая, что ничего нового на этом разрабатываться уже не будет никогда, хотелось бы просто автоматизировать компиляцию.
Погоди, а это не ты ли на RSDN с годик назад искал какого-нибудь оберонщика на тему правки древних-древних сырцов оберона? ( http://rsdn.ru/forum/job/5715649.all )
Вообще, полагаю, можно сделать так, чтобы Оберон среда запускалась, что-то делала (аргументы что именно делать — передавать в виде аргументов, или же таки через файл) и сразу вырубалась. Какая именно версия используется?
Вообще, полагаю, можно сделать так, чтобы Оберон среда запускалась, что-то делала (аргументы что именно делать — передавать в виде аргументов, или же таки через файл) и сразу вырубалась. Какая именно версия используется?
Кореш мой писал. Да, речь шла про этот код. Собственно, с кодом разобрались еще в ноябре прошлого года, в целом все под контролем.
Версия 2.4.5, если я ничего не путаю. Как версию можно узнать точно, не совсем понятно.
Может, поможет дата создания oberon.exe — 1997 год.
Версия 2.4.5, если я ничего не путаю. Как версию можно узнать точно, не совсем понятно.
Может, поможет дата создания oberon.exe — 1997 год.
Похоже это PluginOberon? У меня есть консольная версия
Не, это обычный цюриховский оберон, в который некими умельцами еще напихан кросс-компилятор под мотороллу и какие-то свои утилиты.
это именно PluginOberon от ETH, на публичном ftp лежит как WinOberon, и компилер под моторолу тоже. Тоже можно сделать консольным
А подробности?
Что за ftp? Который с сайта ETH, у меня почему-то сейчас не открывается.
Что за ftp? Который с сайта ETH, у меня почему-то сейчас не открывается.
Вот спасибо. После просмотра нормального примера кода на Обероне без однобуквенных имен переменных и процедур, не такими уж и плохими кажутся BEGIN-END вместо скобок
Добавил в статью выдержку из диссертации Патрика Реали, создателя многопоточного компилятора Активного Оберона, JVM для A2 и вообще внёсшего существенный вклад в Оберон-Технологии. Критика Языка Оберон от отцов-основателей, «чтобы в корне пресечь кривотолки»
Sign up to leave a comment.
Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней