- •Содержание
 - •1. Организация таблицы идентификаторов
 - •1.1. Исходные данные
 - •1.2. Назначение таблиц идентификаторов
 - •1.3. Метод простого рехеширования
 - •1.4. Простой список
 - •1.5. Результаты
 - •2. Проектирование лексического анализатора
 - •2.1. Исходные данные
 - •3. Проектирование синтаксического анализатора
 - •3.1. Исходные данные
 - •3.2. Построение синтаксического анализатора
 - •3.3. Результаты
 - •Список использованной литературы
 
Содержание
| 
			 Введение.........................................................................................................  | 
			 2  | 
| 
			 1. Организация таблицы идентификаторов.................................................  | 
			 3  | 
| 
			 1.1. Исходные данные.................................................................................  | 
			 3  | 
| 
			 1.2. Назначение таблиц идентификаторов...............................................  | 
			 3  | 
| 
			 1.3. Метод простого рехеширования........................................................  | 
			 4  | 
| 
			 1.4. Метод простого списка.......................................................................  | 
			 6  | 
| 
			 1.5. Результаты............................................................................................  | 
			 7  | 
| 
			 2. Проектирование лексического анализатора............................................  | 
			 9  | 
| 
			 2.1. Исходные данные.................................................................................  | 
			 8  | 
| 
			 2.2. Принципы работы лексического анализатора..................................  | 
			 9  | 
| 
			 2.3. Схема распознавателя.........................................................................  | 
			 10  | 
| 
			 2.4. Результаты............................................................................................  | 
			 12  | 
| 
			 3. Проектирование синтаксического анализатора......................................  | 
			 13  | 
| 
			 3.1. Исходные данные.................................................................................  | 
			 13  | 
| 
			 3.2. Построение синтаксического анализатора........................................  | 
			 12  | 
| 
			 3.3. Результаты............................................................................................  | 
			 16  | 
| 
			 Заключение.....................................................................................................  | 
			 20  | 
| 
			 Список использованной литературы...........................................................  | 
			 20  | 
| 
			 Приложение А  Исходный текст программы............................................  | 
			 21  | 
| 
			 Приложение Б  Граф состояний лексического анализатора....................  | 
			 33  | 
| 
			 Приложение В  Матрица операторного предшествования......................  | 
			 42  | 
Введение
Компилятор – программный модуль, задачей которого является перевод программы, написанной на одном из языков программирования (исходный язык) в программу на языке ассемблера или языке машинных команд.
Целью данной курсовой работы является изучение составных частей, основных принципов построения и функционирования компилятора, практическое освоение методов построения составных частей компилятора для заданного входного языка.
Курсовая работа заключается в реализации отдельных фаз компиляции заданного языка.
В первой части работы требуется разработать программный модуль, который получает на входе набор идентификаторов, организует таблицу идентификаторов по заданным методам и позволяет осуществить многократный поиск идентификатора в этой таблице. Программа должна подсчитывать число коллизий и среднее количество сравнений, выполняемых для поиска идентификатора.
Во второй части работы требуется разработать программный модуль, выполняющий лексический анализ входного текста по заданной грамматике и порождающий таблицу лексем с указанием их типов.
В третьей части работы требуется разработать программу, которая на основании таблицы лексем выполняет синтаксический разбор текста по заданной грамматике с построением цепочки вывода и дерева разбора.
В качестве среды разработки для реализации приложения использован язык программирования Delphi 7 и система программирования Borland Delphi 7.
