Для программной реализации компилятора рекомендуется использовать язык программирования Object Pascal и систему программирования Borland Delphi. Возможно использовать другие языки и системы программирования по согласованию с преподавателем.
Компилятор рекомендуется построить из следующих составных частей:
1. Лексический анализатор.
2. Синтаксический анализатор.
3. Оптимизатор.
4. Генератор результирующего кода.
Для построения компилятора рекомендуется использовать методы, освоенные в ходе выполнения лабораторных работ по курсу «Системное программное обеспечение».
Порядок выполнения работы
Рекомендуемый порядок выполнения работы представлен в табл. 5.1.
Таблица 5.1. Рекомендуемые этапы и время выполнения курсовой работы
Требования к содержанию пояснительной записки
Пояснительная записка к курсовой работе должна содержать следующие разделы:
1. Краткое изложение цели работы.
2. Задание по лабораторной работе (номер варианта и полное описание своего варианта).
3. Грамматика входного языка в одном из трех возможных видов:
• форма Бэкуса—Наура;
• форма с метасимволами;
• графическая форма.
4. Описание выбранного способа организации таблицы идентификаторов с обоснованием сделанного выбора.
5. Описание лексического анализатора и выбранного метода его взаимодействия с синтаксическим анализатором.
6. Граф переходов или иное описание конечного автомата лексического анализатора.
7. Обоснование выбора класса КС-грамматик для построения синтаксического анализатора.
8. Описание синтаксического анализатора в зависимости от выбранного класса КС-грамматик (включая все необходимые управляющие таблицы и множества).
9. Выбор форм внутреннего представления программы, используемых в компиляторе с обоснованием сделанного выбора.
10. Описание используемого метода порождения результирующего кода.
11. Описание используемого метода оптимизации.
12. Информация об организации построенного компилятора, его разбиении на проходы, количество проходов в компиляторе.
13. Выводы по проделанной работе.
14. Пример входной программы и результирующей программы, построенной компилятором.
15. Текст программы компилятора.
Примеры входной и результирующей программ, а также текст программы компилятора рекомендуется оформлять в виде приложений к тексту пояснительной записки.
В качестве основы построения синтаксического анализатора допускается выбрать любой класс КС-грамматик. Описание синтаксического анализатора должно быть полным, содержать все управляющие таблицы и множества, необходимые для построения алгоритма функционирования анализатора (распознавателя).
Допускается для построения лексического и (или) синтаксического анализаторов использовать автоматизированные методы построения распознавателей (например на основе программ LEX и YACC) [2, 3, 7, 27, 35]. В этом случае не требуется приводить граф переходов конечного автомата (для лексического анализатора) и описание синтаксического анализатора.
В таком варианте соответствующие разделы пояснительной записки должны содержать следующую информацию: обоснование выбора программы, используемой в качестве средства автоматизированного построения распознавателя, и текст входного файла, созданного для выполнения автоматизированного построения лексического либо синтаксического анализатора.
Задание на курсовую работу
Компилятор должен запускаться командной строкой с несколькими входными параметрами. Первым и главным входным параметром должно быть имя входного файла, вторым параметром может быть имя результирующего файла. Требования к остальным параметрам командной строки и управляющим ключам (если они необходимы) устанавливаются исполнителем самостоятельно.
Командная строка должна быть достаточной для функционирования компилятора. Помимо интерфейса командной строки возможно наличие дополнительного интерактивного интерфейса пользователя у компилятора (в том числе и графического) по усмотрению исполнителя работы.
Входной язык компилятора должен удовлетворять следующим требованиям:
Читать дальше
Конец ознакомительного отрывка
Купить книгу