Alexander писал(а): Кажется Noch даже начинал компилятор Оберона ? Откликнись !
На самом деле было бы здорово если бы наше сообщество продолжило дельфина
Потому, что если бы юникс был написан на паскале, он бы мне нравился еще больше.
Быстрая компиляция, маленький код - это здорово!
ИМХО, самые большие проблемы линукс сейчас - длительнаая компиляция и разбухший код
Компилятор оберона я пишу.
Потому, что ни один из существующих компиляторов меня не удовлетворяет.
Пробовал исключительно все.
Надеюсь blackbox для linux будет хорошим средством разработки, когда выйдет
Пишу компилятор на обероне, причем в процессе я перепробовал все компиляторы под линукс.
Дело было так:
Росийский компиилятор XDS мне не нравился с самого начала. Минимальная программа hello world компилируется линуяксь к ncurses, и он не поддерживает сборку мусора в свопе.
Кроме того, там не было oakwood модуля files, который я и хотел использовать
Я начал писать используя oo2c , первой ветки.
Причина в том, что только oo2c первой ветки содержал все необходимые oakwood библиотеки, со стандартными интерфейсами и написав стандартные билиотеки с стандартными интерфейсами для своего компилятора, я в какой-то момент смог бы перекомпилировать свой компилятор своим же компилятором без каких-либо изменений в коде.
Однако oo2c меня огорчил, причина - несколько багов, которые не просто затрудняли, но делали работу невозможной.
Эта ветка закрыта и разработчикам сообщать не имело смысла.
Во второй ветке стандартные библиотеки отсутствуют.
Тогда я попробовал продолжить разработку на obc - oxford oberon compiler, там есть стандартные библиотеки, однако модуль files совсем другой. Этот компилятор генерирует байт код, в виде шелл скрипта. Запускаешь скрипт, а из него запускается интерпретатор
Однако и там был баг, причем очень страшный. При повторном вызове процедуры иногда получается, что его локальная переменная сохраняет предыдущее значение, и более того, его невозможно изменить
Мой любимый компилятор разрабатываемый в университете города Ulm мне не подходил, потому, что он компилирует oberon-1, а я активно использую фичи языка oberon-2, в частности открытые массивы
Поэтому я еще раз портировал компилятор и продолжаю разработку на oo2c второй ветки.
Пока особо не жалуюсь
После паскаля неудобно отсутствие отладчика, а также неприятно удивляет большой код
Потому как он не компилирует сразу, а транслирует в си код, который затем компилируется.
Еще удивило отсутствие перечислимых типов, и обрадовало что процедура не может вернуть массив или запись, только указатель на них
Все это для повышения эффективности кода
А перечислимые записи затрудняют реализацию расширения типов, они даже в яву сначала не были включены
Однако пока все слишком сыро чтобы выкладывать на люди
Пишу для i386/linux, а также для восьмибитных микроконтроллеров и процессоров.
Компилятор генерирует ассемблерный код, а не обьектный, хотя Вирт это не рекомендует.
Еще вопросы будут - пишите
Спасибо