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

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


blackbox:compiler

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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