Комментарии 41
НЛО прилетело и опубликовало эту надпись здесь
Срач в комментах утроился, ага. К счастью, Kemet — вроде бы новый человек, и будем надеяться, что тут обсуждение выйдет более продуктивным.
+7
Ну, Активный Оберон, в отличии от Великого Оберона, интересен скорее наличием фич, чем их отсутствием.
Я бы не стал смешивать эти языки.
Я бы не стал смешивать эти языки.
+2
А вот Active Oberon я практически не смотрел. Спасибо, интересно.
То есть, выходит, семантическу многих конструкций определяет в нем что-то типа прагм или аннотаций по месту?
То есть, выходит, семантическу многих конструкций определяет в нем что-то типа прагм или аннотаций по месту?
+4
Тонко.
-5
В Активном Обероне применяется автоматическое управление памятью, с использованием сборщика мусора реального времени. Это значит, что активности реального времени могут приостанавливать процесс сборки мусора. В участках кода реального времени запрещены операции выделения памяти за этим следит компилятор. Процедуры, методы и активности реального времени помечаются модификатором REALTIME. Не все реализации компилятора и среды выполнения поддерживают процессы реального времени.
Вот это действительно круто. Я время от времени думаю, почему в Rust не хотят сделать аннотаций «не выделяет память», чтобы как раз помечать функции, безопасные для использования в контексте какого-нибудь обработчика сигналов, например.
Ну и вообще, ради этого параграфа стоило прочитать публикацию. Только что узнал об Обероне больше, чем за последнюю неделю общения с его пользователями (не с вами).
Ещё: так работает любой Оберон, или именно Активный?
Правильно я понимаю, что язык по сути неотделим от среды исполнения, которая, можно сказать, является одновременно ОС и IDE? У меня сложилось впечатление, что Оберон-Система — это вот про это.
Можно ли использовать Активный Оберон (или любой Оберон) на Линуксе?
+9
Ещё: так работает любой Оберон, или именно Активный?
Именно Активный. Active Oberon это отдельный ЯП, дальнейшее развитие системы и языка в стенах Швейцарской высшей технической школы Цюриха
Использова Active Oberon в линуксе или винде можно, примерно также как можно использовать смалтолк/squeak. Хотя Kemet лучше расскажет, возможно там есть реализации которые не тащат с собой например всю среду.
В плане любых оберонов — там разное бывает. Во-первых есть реализации ОС Оберон в виде приложения (не эмулятора, а именно приложения, опять же, привет smalltalk/squeak только с учетом того, что Оберон компиляется в реальные машкоды целевой архитектуры, например x86 — никаких эмуляторов). А во-вторых довольно много самых разных компиляторов оберона и оберона-2, как в x86, так и в Си например.
То есть Оберон (не Active — про Active я лично просто не в курсе) бывает без среды под винду или линукс. В качестве IDE были какие-то плагины к eclipse, ну или можно использовать Sublime Text. Мною к sublime был даже плагин писан для того, чтобы было удобней код набирать (в частности ключевые слова там становились КАПСОМ автоматом, не нужно никаких шифтов жать).
+2
Сборщик мусора реального времени есть для среды времени выполнения Активного Оберона ( в варианте реализации этой среды в ОС 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
+2
А моя консольная программа будет линковаться к рантайму как к динамической библиотеке? Или там что-то похожее на большую виртуальную машину типа Java?
+1
Забыл, есть ещё Oxford Oberon-2 Compiler, который в том числе и под Линукс
+2
Я время от времени думаю, почему в Rust не хотят сделать аннотаций «не выделяет память», чтобы как раз помечать функции
На самом деле, кода в Rust ещё использовалась концепция typestate, почти так оно и было. Потом от typestate отказались, потому что она приводит к проблемам с композицей (вот здесь есть ещё информация). Та же самая штука была с pure-функциями (они тоже были, и от них тоже отказались).
+3
- Сделать виртуалов
- Неделю писать с них всякий неадекват
- Написать нормальный пост с настоящего пользователя
- На контрасте получить отличные оценки (ура, не все пользователи Оберона — сумасшедшие фрики!)
- PROFIT
Это шутка, конечно.
+23
Добавил в статью ссылку на форум поддержки, там, в принципе, есть ссылки на свежие сборки нативной A2, WinAOS, UnixAos
+1
У меня только один вопрос — кто-то запилил уже нормальную IDE, или это все так и осталось на уровне наколенных поделок?
0
Смотря что под нормальной IDE подразумевать :-) Вот Sublime Text — это нормальная IDE? А допустим гошная LiteIDE? А Code::Blocks? А vim? А CLion?
Скажи что нужно, расскажем что есть, а чего нет, но что есть вместо этого.
Скажи что нужно, расскажем что есть, а чего нет, но что есть вместо этого.
0
Сейчас у меня есть куча древнего кода на Oberon 2, который можно компилить только при помощи кросс-компилятора под MC68332 из совершенно эзотерической среды этого самого Oberon под Win (где половина операций по средней кнопке мыши). Поэтому правки кода я делаю в pspad, а для компиляции запускаю среду. Учитывая, что ничего нового на этом разрабатываться уже не будет никогда, хотелось бы просто автоматизировать компиляцию.
0
Погоди, а это не ты ли на RSDN с годик назад искал какого-нибудь оберонщика на тему правки древних-древних сырцов оберона? ( http://rsdn.ru/forum/job/5715649.all )
Вообще, полагаю, можно сделать так, чтобы Оберон среда запускалась, что-то делала (аргументы что именно делать — передавать в виде аргументов, или же таки через файл) и сразу вырубалась. Какая именно версия используется?
Вообще, полагаю, можно сделать так, чтобы Оберон среда запускалась, что-то делала (аргументы что именно делать — передавать в виде аргументов, или же таки через файл) и сразу вырубалась. Какая именно версия используется?
0
Кореш мой писал. Да, речь шла про этот код. Собственно, с кодом разобрались еще в ноябре прошлого года, в целом все под контролем.
Версия 2.4.5, если я ничего не путаю. Как версию можно узнать точно, не совсем понятно.
Может, поможет дата создания oberon.exe — 1997 год.
Версия 2.4.5, если я ничего не путаю. Как версию можно узнать точно, не совсем понятно.
Может, поможет дата создания oberon.exe — 1997 год.
0
Похоже это PluginOberon? У меня есть консольная версия
0
Не, это обычный цюриховский оберон, в который некими умельцами еще напихан кросс-компилятор под мотороллу и какие-то свои утилиты.
0
это именно PluginOberon от ETH, на публичном ftp лежит как WinOberon, и компилер под моторолу тоже. Тоже можно сделать консольным
0
А подробности?
Что за ftp? Который с сайта ETH, у меня почему-то сейчас не открывается.
Что за ftp? Который с сайта ETH, у меня почему-то сейчас не открывается.
0
Вот спасибо. После просмотра нормального примера кода на Обероне без однобуквенных имен переменных и процедур, не такими уж и плохими кажутся BEGIN-END вместо скобок
+4
Добавил в статью выдержку из диссертации Патрика Реали, создателя многопоточного компилятора Активного Оберона, JVM для A2 и вообще внёсшего существенный вклад в Оберон-Технологии. Критика Языка Оберон от отцов-основателей, «чтобы в корне пресечь кривотолки»
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней