Дипломная работа: Программно методический комплекс для обучения процессу создания компиляторов
Синтаксис языка программирования - это правила составления предложений языка из отдельных слов. Такими предложениями являются операции, операторы, определения функций и переменных. Особенностью синтаксиса является принцип вложенности (рекурсивность) правил построения предложений. Это значит, что элемент синтаксиса языка в своем определении прямо или косвенно в одной из его частей содержит сам себя. Например, в определении оператора цикла телом цикла является оператор, частным случаем которого является все тот же оператор цикла.
Синтаксический анализ (грамматический разбор) – формирует синтаксическую единицу – выражение, инструкцию, вызов подпрограммы, декларацию, которые далее обрабатываются семантическим анализатором. Пример структуры: FOR <выражение> TOintDO <body>.
Синтаксический разбор – процесс получения дерева синтаксического разбора на основе заданной грамматики.
Сканер (лексический анализатор) – программа распознавания лексем.
Спецификатор – порядковый номер в таблице, куда занесена лексема.
Терминальный символ – конечный неделимый элемент конструкции языка, является зарезервированным словом (например READ, (, +).
Транслятор – это системная программа, выполняющая преобразование программы, написанной на одном алгоритмическом языке, в программу на другом алгоритмическом языке в определенном смысле эквивалентную первой.
Содержание
Введение................................................................................................... 19
1 Анализ предметной области................................................................ 20
1.1 Компиляторы........................................................................... 20
1.2 Логическая структура компилятора..................................... 21
1.3 Лексический анализ. Сканер..................................................... 24
1.4 Синтаксический и семантический анализ.............................. 28
1.5 Грамматики............................................................................. 31
1.6 Формирование промежуточного кода................................... 34
Метод четверок..................................................................... 36
1.7 Обоснование создания учебного комплекса............................. 37
1.8 Обзор существующих разработок.......................................... 38
1.9 Обоснование разработки........................................................ 39
2 Создание учебной разработки............................................................. 42
2.1 Краткое описание учебного компилятора............................. 42
2.2 Описание учебного языка......................................................... 43
2.3 Лексический анализатор LEXAN............................................. 46
2.3.1 Таблица терминальных символов.............................. 47
2.3.2 Таблица символических имен..................................... 48
2.3.3 Таблица литералов...................................................... 49
2.3.4 Работа сканера............................................................. 50
2.3.5 Структура листинга..................................................... 50