Сделан ещё один шаг в направлении многоцелевого транслятора Оберона - была добавлена возможность генерации кода в Javascript. Обеспечена возможность прохождения простых тестов, но для трансляции самого транслятора генератор кода предстоит доработать.
Генератор Javascript кода был был переделан из генератора Java кода, который в свою очередь был переделан из генератора C кода. Так что артефакты переделок продолжают накапливаться.
Модуль Оберона отображается на безымянную функцию, автоматическое исполнение которой приводит к появлению объекта модуля в специальном объекте o7, который, также, хранит дополнительные функции для более удобной поддержки языка. Как и для Java, переменные примитивных типов, участвующие как фактические параметры-переменные преобразовываются в одноэлементные массивы. Локальные и безымянные записи в духе прототипного ООП отображаются на функции-конструкторы. Для присваивания значения записей генерируются необходимые функции. Для кодирования типа CHAR используются целые числа.
Обновление: достигнута возможность самотрансляции
Комментариев нет:
Отправить комментарий