Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа2 / Docs / KursovikOtchet00_.doc
Скачиваний:
27
Добавлен:
01.05.2014
Размер:
791.55 Кб
Скачать

Содержание

Содержание 2

Задание 4

Описание входного языка 5

Структура программы и секции объявлений 5

Используемые типы данных 5

Тип 6

Представление операторов во входном языке 6

Представление выражений во входном языке 7

Ассоциативность и приоритет операций 8

Описание компилятора 9

Общая схема компиляции 9

Разработка лексического анализатора 11

Назначение лексического анализатора 11

Типы выделяемых лексем 11

Описание ключевых слов и идентификаторов 11

Описание целочисленных, вещественных и строковых констант 12

Описание разделителей 12

Описание комментариев и незначащих символов 12

Диаграмма лексического анализатора 13

Спецификация лексического анализатора 14

Множество токенов лексического анализатора 14

Формат используемых таблиц лексем 15

Представление потока токенов на выходе лексического анализатора 16

Разработка синтаксического анализатора 18

Назначение синтаксического анализатора 18

Стратегии проектирования синтаксического анализатора 18

Разработка вспомогательных средств генерации таблиц 19

Пример использования вспомогательных средств генерации таблиц 20

Спецификация синтаксического анализатора 20

Подготовка полной грамматики входного языка 23

Описание схемы атрибутной трансляции 25

Представление атрибутов в памяти ЭВМ 30

Описание промежуточного представления программы 30

Обработка ошибок 32

Разработка генератора кода 34

Назначение генератора кода 34

Стратегия проектирования генератора кода 34

Разработка библиотеки поддержки 34

Спецификация генератора кода 36

Формат текста программы на языке ассемблера 36

Генерация команд по промежуточному коду 37

Компоновка исполняемого модуля 39

Выполнение контрольного примера 40

Содержание контрольного примера 40

Выполнение лексического анализа 40

Выполнение синтаксического анализа 41

Выполнение генерации кода 41

Выполнение программы 44

Выводы по результатам выполнения курсовой работы 45

Приложения 46

Приложение 1 46

Приложение 2 52

Задание

Разработать компилятор, реализующий перевод текста программы на некотором подмножестве языка ПАСКАЛЬ в соответствующий текст на языке ассемблера.

Состав функциональных возможностей входного языка задается следующим образом:

- базовый синтаксис входного языка - язык ПАСКАЛЬ;

- в языке должны быть представлены следующие базовые типы:

- целый (integer);

- вещественные (real);

- булевский (boolean);

- символьный (char)

- в языке должны быть представлены следующие структурные типы:

- строка (string);

- стек (stack)

- в языке должны быть представлены следующие структурные операторы:

- оператор условия (if – then – else clause);

- оператор цикла с параметром (for – to – do clause);

- оператор следования (begin-end clause)

- также в языке должны присутствовать дополнительные операторы:

- оператор присваивания;

- оператор вывода на терминал;

- оператор вводы с терминала

Требования к реализации программы:

- метод синтаксического анализа - алгоритм синтаксического анализа для SLR(1)-грамматик;

- внутреннее представление текста на входном языке должно быть реализовано в виде тетрад.

Соседние файлы в папке Docs