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

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


bb:dev

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
bb:dev [2015/01/25 14:47]
kpmy [[[bb:dev:cpt|DevCPT]]]
bb:dev [2020/10/29 07:08] (текущий)
Строка 1: Строка 1:
 ====== Подсистема Dev ====== ====== Подсистема Dev ======
-Подсистема Dev содержит в себе компилятор и средства отладки.  +Подсистема ''Dev'' содержит в себе компилятор и средства отладки.  
-Компилятор реализован на основе переносимого компилятора Оберона [[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/OP2.Paper.ps.gz|OP2]].+Компилятор реализован на основе переносимого компилятора **Оберона** [[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/OP2.Paper.ps.gz|OP2]].
  
 ====== Описание ====== ====== Описание ======
-Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены парсера и AST-дерева. \\ +Компилятор выполнен по трехфазной схеме, с возможностью смены кодогенератора под конкретную платформу без смены //парсера// и //AST-дерева//((AST --- abstract syntacsis tree (абстрактное синтаксическое дерево). Служит хранению текста программы в промежуточном состоянии между исходным текстом и машинным кодом. Это не байт-код. Исполнять нельзя. Но AST-дерево даёт гарантию, что код программы корректный (иначе нельзя получить такое дерево), и позволяет привести к машинному коду на нужной платформе, что сильно облегчает портирование программ  --- //[[prospero.78.su@gmail.com|Валерий Шипков]] 2016/04/05 20:15//)).\\ 
-Предполагается, что смена платформы происходит путем подмены модуля DevCompilerXxx, который после успешного завершения процесса создания AST-дерева передает результат сменному бэкенду DevCPVxxx. +Предполагается, что смена платформы происходит путем подмены модуля ''DevCompilerXxx'', который после успешного завершения процесса создания //AST-дерева// передает результат сменному бэкенду ''DevCPVxxx''
  
 ====== Модули компилятора ====== ====== Модули компилятора ======
  
 ===== DevCompiler ===== ===== DevCompiler =====
-DevCompiler - командный модуль, подготавливает текст модулей для компиляции. А еще подготавливает опции компиляции и некоторые глобальные значения других модулей компилятора. Существует так же в версиях DevCompilerO2, DevCompiler68k+''DevCompiler'' - командный модуль, подготавливает текст модулей для компиляции. А еще подготавливает опции компиляции и некоторые глобальные значения других модулей компилятора. Существует так же в версиях ''DevCompilerO2''''DevCompiler68k''.
  
 ===== DevCPM ===== ===== DevCPM =====
-DevCPM - от слова **M**achine, определяет машинно-зависимые константы, тип процессорной архитектуры. Работает с символьными файлами непосредственно, знает их формат, пишет и читает их.+''DevCPM'' - от слова **M**achine, определяет машинно-зависимые константы, тип процессорной архитектуры. Работает с символьными файлами непосредственно, знает их формат, пишет и читает их.
 Обрабатывает модификаторы в квадратных скобках для процедур, параметров и типов данных. Предопределяет свойства будущего кода. Для модулей компилятора предоставляет сервис отслеживания ошибок и чтения стандартной текстовой модели. Обрабатывает модификаторы в квадратных скобках для процедур, параметров и типов данных. Предопределяет свойства будущего кода. Для модулей компилятора предоставляет сервис отслеживания ошибок и чтения стандартной текстовой модели.
  
 ===== DevCPP ===== ===== DevCPP =====
-DevCPP - от слова **P**arser, парсер модулей. Использует сервис CPS, и по результатам работы вызывает функции CPT и CPB для сохранения результатов. +''DevCPP'' - от слова **P**arser, //парсер// модулей. Использует сервис ''CPS'', и по результатам работы вызывает функции ''CPT'' и ''CPB'' для сохранения результатов. 
  
 ===== DevCPS ===== ===== DevCPS =====
Строка 26: Строка 26:
  
 ===== DevCPB ===== ===== DevCPB =====
-DevCPB - от слов Tree **B**uilder, реализует набор "скриптовых" процедур по работе с модулем CPT, заодно проверяет валидность констант, используется для упрощения генерации AST.+''DevCPB'' - от слов Tree **B**uilder, реализует набор "скриптовых" процедур по работе с модулем ''CPT'', заодно проверяет //валидность// констант, используется для упрощения генерации **AST**.
  
 ===== DevCPE ===== ===== DevCPE =====
-DevCPE - от слова **E**mitter, занимается генерацией кодового файла. +''DevCPE'' - от слова **E**mitter, занимается генерацией кодового файла. 
  
 ===== DevCPH ===== ===== DevCPH =====
Строка 35: Строка 35:
  
 ===== DevCPV486 ===== ===== DevCPV486 =====
-DevCPV486 - от слова Tra**v**erser, обходчик получившегося дерева AST. Выполняет обход и анализ синтаксического дерева. В результате этого генерирует код для конкретной платформы с помощью CPL486 и CPC486. Записывает полученный код в кодовый файл модуля с помощью CPE. Так же есть в вариантах CPV68k.+''DevCPV486'' - от слова Tra**v**erser, обходчик получившегося дерева **AST**. Выполняет обход и анализ синтаксического дерева. В результате этого генерирует код для конкретной платформы с помощью ''CPL486'' и ''CPC486''. Записывает полученный код в кодовый файл модуля с помощью ''CPE''. Так же есть в вариантах ''CPV68k''.
  
 ===== DevCPC486 ===== ===== DevCPC486 =====
-DevCPC486 - от слов **C**ode Generator. Занимается генерацией сложного кода, управляет стеком, регистрами, структурой данных в памяти, работой с FPU, использует сервисы CPL486. Так же есть в вариантах CPC68k.+''DevCPC486'' - от слов **C**ode Generator. Занимается генерацией сложного кода, управляет стеком, регистрами, структурой данных в памяти, работой с **FPU**, использует сервисы ''CPL486''. Так же есть в вариантах ''CPC68k''.
  
 ===== DevCPL486 ===== ===== DevCPL486 =====
-DevCPL486 - от слов **L**ow-level generator, генерирует инструкции процессора. Так же есть в вариантах CPL68k.+''DevCPL486'' - от слов **L**ow-level generator, генерирует инструкции процессора. Так же есть в вариантах **CPL68k**.
  
 ===== Другое ===== ===== Другое =====
-Известны так же модули-декодеры DevDecXXX кода разных платформ, x86, 68k, ARM, PPC, декодер формата Exe. +Известны так же //модули-декодеры// ''DevDecXXX'' кода разных платформ, **x86****68k****ARM****PPC**, декодер формата Exe. 
-DevTranslator - похоже может перевести C код в код на обероне. +''DevTranslator'' - похоже может перевести C код в код на обероне. 
-DevRemDebug - пошаговый отладчик+''DevRemDebug'' - пошаговый отладчик ((возможно, удалённый.  --- //[[prospero.78.su@gmail.com|Валерий Шипков]] 2016/04/05 20:25//))
bb/dev.1422186463.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)