 
        
        - •Содержание
- •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. Метод простого рехеширования........................................................ | 5 | 
| 1.4. Метод простого списка....................................................................... | 7 | 
| 1.5. Результаты............................................................................................ | 9 | 
| 2. Проектирование лексического анализатора............................................ | 11 | 
| 2.1. Исходные данные................................................................................. | 11 | 
| 2.2. Принципы работы лексического анализатора.................................. | 12 | 
| 2.3. Схема распознавателя......................................................................... | 13 | 
| 2.4. Результаты............................................................................................ | 14 | 
| 3. Проектирование синтаксического анализатора...................................... | 15 | 
| 3.1. Исходные данные................................................................................. | 15 | 
| 3.2. Построение синтаксического анализатора........................................ | 15 | 
| 3.3. Результаты............................................................................................ | 19 | 
| Заключение..................................................................................................... | 21 | 
| Список использованной литературы........................................................... | 22 | 
| Приложение А  Исходный текст программы............................................ | 23 | 
| Приложение Б  Граф состояний лексического анализатора.................... | 34 | 
| Приложение В  Матрица операторного предшествования...................... | 36 | 
 Введение
Введение
Компилятор – программный модуль, задачей которого является перевод программы, написанной на одном из языков программирования (исходный язык) в программу на языке ассемблера или языке машинных команд.
Целью данной курсовой работы является изучение составных частей, основных принципов построения и функционирования компилятора, практическое освоение методов построения составных частей компилятора для заданного входного языка.
Курсовая работа заключается в реализации отдельных фаз компиляции заданного языка.
В первой части работы требуется разработать программный модуль, который получает на входе набор идентификаторов, организует таблицу идентификаторов по заданным методам и позволяет осуществить многократный поиск идентификатора в этой таблице. Программа должна подсчитывать число коллизий и среднее количество сравнений, выполняемых для поиска идентификатора.
Во второй части работы требуется разработать программный модуль, выполняющий лексический анализ входного текста по заданной грамматике и порождающий таблицу лексем с указанием их типов.
В третьей части работы требуется разработать программу, которая на основании таблицы лексем выполняет синтаксический разбор текста по заданной грамматике с построением цепочки вывода и дерева разбора.
В качестве среды разработки для реализации приложения использован язык программирования Delphi 7 и система программирования Borland Delphi 7.
