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

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


blackbox:compiler

Различия

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

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

blackbox:compiler [2018/05/23 13:19]
иван_денисов
blackbox:compiler [2020/10/29 07:08]
Строка 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 }} 
-  * диссертации [[http://e-collection.library.ethz.ch/eserv/eth:39386/eth-39386-02.pdf|Crelier R. Separate compilation and module extension, 1994]] 
-  * публикации [[http://oberon2005.oberoncore.ru/paper/p_obesys.pdf|Brandis M.M., Crelier R., Franz M., Templ J.  The Oberon System Family // SOFTWARE-PRACTICE AND EXPERIENCE. 1995. Vol. 25. P. 1331–1366.]] {{ :blackbox:the_oberon_system_family.pdf |версия 2}} 
- 
- 
-Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены //парсера// и //AST-дерева//((AST --- abstract syntax tree (абстрактное синтаксическое дерево). Служит хранению текста программы в промежуточном состоянии между исходным текстом и машинным кодом. Это не байт-код. Исполнять нельзя. Но AST-дерево даёт гарантию, что код программы корректный (иначе нельзя получить такое дерево), и позволяет привести к машинному коду на нужной платформе, что сильно облегчает портирование программ)). 
- 
-Предполагается, что смена платформы происходит путем подмены модуля ''DevCompilerXxx'', который после успешного завершения процесса создания //AST-дерева// передает результат сменному бэкенду ''DevCPVxxx'' 
- 
-По модулям это расписано тут: http://obertone.ru/blackbox/dev 
blackbox/compiler.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)