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

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


bb:dev

Различия

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

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

bb:dev [2014/10/27 16:42]
kpmy [Другое]
bb:dev [2020/10/29 07:08]
Строка 1: Строка 1:
-====== Подсистема Dev ====== 
-Подсистема Dev содержит в себе компилятор и средства отладки.  
-Компилятор реализован на основе переносимого компилятора Оберона [[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/OP2.Paper.ps.gz|OP2]]. 
  
-Рассмотрим модули компилятора. 
-===== DevCompiler ===== 
-DevCompiler - командный модуль, подготавливает текст модулей для компиляции. А еще подготавливает опции компиляции и некоторые глобальные значения других модулей компилятора. Существует так же в версиях DevCompilerO2, DevCompiler68k 
- 
-===== DevCPM ===== 
-DevCPM - от слова **M**achine, определяет машинно-зависимые константы, тип процессорной архитектуры. Работает с символьными файлами непосредственно, знает их формат, пишет и читает их. 
-Обрабатывает модификаторы в квадратных скобках для процедур, параметров и типов данных. Предопределяет свойства будущего кода. Для модулей компилятора предоставляет сервис отслеживания ошибок и чтения стандартной текстовой модели. 
- 
-===== DevCPP ===== 
-DevCPP - от слова **P**arser, парсер модулей. Использует сервис CPS, и по результатам работы вызывает функции CPT и CPB для сохранения результатов.  
- 
-===== DevCPS ===== 
-DevCPS - от слова **S**canner, низкоуровневый сканер текста модулей. Дополнительно занимается преобразованием текста в числовые значения, проверяет их в CPM.  
- 
-===== DevCPT ===== 
-DevCPT - от слов Symbol **T**able, определяет типы данных, которые описывают все сущности компилируемого модуля. Во время компиляции содержит в себе дерево сущностей AST topScope. Определяет встроенные типы языка, встроенные процедуры модуля SYSTEM, встроенные процедуры языка. 
- 
-===== DevCPB ===== 
-DevCPB - от слов Tree **B**uilder, реализует набор "скриптовых" процедур по работе с модулем CPT, заодно проверяет валидность констант, используется для упрощения генерации AST. 
- 
-===== DevCPE ===== 
-DevCPE - от слова **E**mitter, занимается генерацией кодового файла.  
- 
-===== DevCPH ===== 
-DevCPH - похоже, что от слова **H**elper, выполняет какие-то утилитарные функции для помощи CPT486. В оригинальном документе OP2 не указан. 
- 
-===== DevCPV486 ===== 
-DevCPV486 - от слова Tra**v**erser, обходчик получившегося дерева AST. Выполняет обход и анализ синтаксического дерева. В результате этого генерирует код для конкретной платформы с помощью CPL486 и CPC486. Записывает полученный код в кодовый файл модуля с помощью CPE. Так же есть в вариантах CPV68k. 
- 
-===== DevCPC486 ===== 
-DevCPC486 - от слов **C**ode Generator. Занимается генерацией сложного кода, управляет стеком, регистрами, структурой данных в памяти, работой с FPU, использует сервисы CPL486. Так же есть в вариантах CPC68k. 
- 
-===== DevCPL486 ===== 
-DevCPL486 - от слов **L**ow-level generator, генерирует инструкции процессора. Так же есть в вариантах CPL68k. 
- 
-===== Другое ===== 
-Известны так же модули-декодеры DevDecXXX кода разных платформ, x86, 68k, ARM, PPC, декодер формата Exe. 
-DevTranslator - похоже может перевести C код в код на обероне. 
-DevRemDebug - пошаговый отладчик 
bb/dev.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)