Инструменты пользователя

Инструменты сайта


blackbox:compiler

Описание работы компилятора Блэкбокса

Компилятор Блэкбокса реализован на основе переносимого компилятора Оберона, который на английском описан в:

Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены парсера и AST-дерева1).

Предполагается, что смена платформы происходит путем подмены модуля DevCompilerXxx, который после успешного завершения процесса создания AST-дерева передает результат сменному бэкенду DevCPVxxx.

По модулям это расписано тут: Подсистема Dev

1)
AST — abstract syntax tree (абстрактное синтаксическое дерево). Служит хранению текста программы в промежуточном состоянии между исходным текстом и машинным кодом. Это не байт-код. Исполнять нельзя. Но AST-дерево даёт гарантию, что код программы корректный (иначе нельзя получить такое дерево), и позволяет привести к машинному коду на нужной платформе, что сильно облегчает портирование программ
blackbox/compiler.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)