blackbox:compiler
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
Следующая версия
Следующая версия справа и слева
|
blackbox:compiler [2018/05/23 13:16] иван_денисов |
blackbox:compiler [2018/05/23 13:19] иван_денисов |
====== Описание работы компилятора Блэкбокс ====== | ====== Описание работы компилятора Блэкбокса ====== |
| |
Компилятор Блэкбокса реализован на основе переносимого компилятора Оберона, который на английском описан в: | Компилятор Блэкбокса реализован на основе переносимого компилятора Оберона, который на английском описан в: |
| |
| |
Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены //парсера// и //AST-дерева//((AST --- abstract syntacsis tree (абстрактное синтаксическое дерево). Служит хранению текста программы в промежуточном состоянии между исходным текстом и машинным кодом. Это не байт-код. Исполнять нельзя. Но AST-дерево даёт гарантию, что код программы корректный (иначе нельзя получить такое дерево), и позволяет привести к машинному коду на нужной платформе, что сильно облегчает портирование программ)). | Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены //парсера// и //AST-дерева//((AST --- abstract syntax tree (абстрактное синтаксическое дерево). Служит хранению текста программы в промежуточном состоянии между исходным текстом и машинным кодом. Это не байт-код. Исполнять нельзя. Но AST-дерево даёт гарантию, что код программы корректный (иначе нельзя получить такое дерево), и позволяет привести к машинному коду на нужной платформе, что сильно облегчает портирование программ)). |
| |
Предполагается, что смена платформы происходит путем подмены модуля ''DevCompilerXxx'', который после успешного завершения процесса создания //AST-дерева// передает результат сменному бэкенду ''DevCPVxxx''. | Предполагается, что смена платформы происходит путем подмены модуля ''DevCompilerXxx'', который после успешного завершения процесса создания //AST-дерева// передает результат сменному бэкенду ''DevCPVxxx''. |
| |
По модулям это расписано тут: http://obertone.ru/blackbox/dev | По модулям это расписано тут: http://obertone.ru/blackbox/dev |
blackbox/compiler.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)