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

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


blackbox:compiler

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
blackbox:compiler [2018/05/23 12:59]
иван_денисов
blackbox:compiler [2020/07/18 11:41]
iadenisov
Строка 1: Строка 1:
-====== Описание работы компилятора Блэкбокс ======+====== Описание работы компилятора Блэкбокса ======
  
-На английском языке компилятор Блэкбокса описан в:+Компилятор Блэкбокса реализован на основе переносимого компилятора Оберона, который на английском описан в:
   * сообщении [[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/OP2.Paper.ps|Crelier R. OP2 : A portable Oberon-2 compiler. 1991.]] {{ :blackbox:crelier_1991.pdf |PDF }}   * сообщении [[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/OP2.Paper.ps|Crelier R. OP2 : A portable Oberon-2 compiler. 1991.]] {{ :blackbox:crelier_1991.pdf |PDF }}
   * диссертации [[http://e-collection.library.ethz.ch/eserv/eth:39386/eth-39386-02.pdf|Crelier R. Separate compilation and module extension, 1994]]   * диссертации [[http://e-collection.library.ethz.ch/eserv/eth:39386/eth-39386-02.pdf|Crelier R. Separate compilation and module extension, 1994]]
Строка 7: Строка 7:
  
  
-Компилятор состоит из бэкенда и фронтенда..использует AST.+Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены //парсера// и //AST-дерева//((AST --- abstract syntax tree (абстрактное синтаксическое дерево). Служит хранению текста программы в промежуточном состоянии между исходным текстом и машинным кодом. Это не байт-кодИсполнять нельзяНо AST-дерево даёт гарантию, что код программы корректный (иначе нельзя получить такое дерево), и позволяет привести к машинному коду на нужной платформе, что сильно облегчает портирование программ)). 
 + 
 +Предполагается, что смена платформы происходит путем подмены модуля ''DevCompilerXxx'', который после успешного завершения процесса создания //AST-дерева// передает результат сменному бэкенду ''DevCPVxxx'' 
 + 
 +По модулям это расписано тут: [[blackbox:dev]]
blackbox/compiler.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)