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