GOLD Parser Builder Grammar Oriented Language Developer. http://www.devincook.com/GOLDParser/
73.50K
Категория: ПрограммированиеПрограммирование

Структура компилятора PascalABC.NET

1.

Структура компилятора PascalABC.NET
Консольная
оболочка
Управляющий блок
Визуальная
оболочка
Compiler.dll
PABCNETC.exe
Алгоритм
компиляции
модулей
Синтаксическое
дерево
Семантическое
дерево
SemanticTree.dll
SyntaxTree.dll
Контроллер
парсеров
Parsers.dll
Oberon2
Конвертор синтаксического
дерева в семантическое
TreeConverter.dll
CodeGen.dll
.NET
dotNETGen.dll
Интерфейс ТС
PascalABCParser.dll
WIN32
Win32Gen.dll
Таблица
символов(ТС)
Ткачук А.
группа 4.1
Контроллер
генераторов кода
Конвертор
Oberon2Parser.dll
PascalABC.NET
PascalABC.exe
Контроль
ошибок
Водолазов Н.
магистр 1 год
доступ
к .NET
Бондарев И.
магистр 1 год

2.

Синтаксическое дерево программы
161 класс на языке C#
for i:=0 to 10 do begin
writeln(i);
for_node
z:=z+1;
cycle_type==to
end;
loop_variable init_value
finish_value
body
ident
name==i
int_const
value==0
int_const
value==0
statement_list
procedure_call
deref_value
ident
name==writeln
assign
parametrs
expression_list
to
from
ident
name==z
bin_expr
oper==plus
left
ident
name==i
ident
name==z
right
int_const
value==1

3. GOLD Parser Builder Grammar Oriented Language Developer. http://www.devincook.com/GOLDParser/

поддерживаемые языки
GOLD Parser Builder
Grammar Oriented Language Developer.
http://www.devincook.com/GOLDParser/
Pascal
Java
Python
Visual Basic
All .NET languages
ANSI C
C#
C++
Delphi
Особенности языка PascalABC.NET
• Модули могут быть описаны без ключевых слов interface
implementation
• Тела методов могут быть описаны как в классе так и вне класса
• В языке принята структурная эквивалентность типов, поэтому
типы можно описывать в заголовках методов и объявлениях
переменных
• Добавлено ключевое слово using позволяющее подключать
пространства имен из .NET
• Добавлена возможность перегрузки всех операторов
• Убраны ключевые слова message и низкоуровневые конструкции
такие как absolute

4.

Структура таблицы символов “динамическая хеш таблица динамических массивов”
Словарь:
динамическая хеш
таблица строк
Таблица
областей
видимости:
динамический
массив
0 0
1
2
3
k
Строка
(имя идентификатора)
Области видимости:
динамический массив
с бинарным поиском

5.

Результат работы
Результатами моей работы являются:
• Создание иерархии классов синтаксического дерева.
• Модификация процесса создания парсеров в системе
GOLDParserBuilder
• Генерация синтаксического дерева по коду программ
написанных на языках PascalABC.NET и Oberon2.
• Адаптация грамматики языка Delphi7 под язык
PascalABC.NET
• Модификация таблицы символов компилятора для
проекта PascalABC.NET
• Алгоритмы поиска в таблице символов
• Алгоритм компиляции модулей в стиле Delphi
English     Русский Правила