- •1. Требования к выполнению курсовой работы и порядок выполнения
- •2. Построение лексического анализатора
- •3. Организация таблиц лексического анализатора и поиска в них
- •4. Разработка синтаксического анализатора методом рекурсивного спуска
- •Приложение 1
- •Библиографический список
- •Оглавление
- •390005, Рязань, ул. Гагарина, 59/1.
1. Требования к выполнению курсовой работы и порядок выполнения
1.1. Цель работы
Цель работы состоит в использовании полученных на лекциях и закрепленных на лабораторных работах теоретических принципов построения компиляторов для практической реализации простейшего компилятора для заданного входного языка.
В качестве входного языка используется подмножество языка программирования Паскаль. Варианты заданий и описание грамматики входного языка приведены в приложении 1 и приложении 2 соответственно.
Компилятор должен состоять из следующих частей:
лексический анализатор;
синтаксический анализатор.
В результате выполнения курсовой работы должны быть разработаны программная реализация компилятора и пояснительная записка, выполненная в соответствии с заданием на курсовую работу и оформленная в соответствии с требованиями ГОСТ.
1.2. Порядок выполнения работы
Работа должна выполняться в следующей последовательности:
1) построение лексического анализатора:
изучение задания на работу с целью определения перечня используемых типов лексем;
разработка для каждого используемого в задании типа лексем своей автоматной грамматики;
утверждение разработанных автоматных грамматик у преподавателя;
разработка для каждого типа лексем своего конечного автомата и, если необходимо, объединенного (единого для распознавания всех заданных лексем) конечного автомата;
выбор (по согласованию с преподавателем) способов организации таблиц лексического анализатора;
разработка программной реализации каждого автомата;
разработка программной реализации лексического анализатора в целом;
тестирование лексического анализатора;
2) построение синтаксического анализатора:
уточнение в соответствии с конкретным заданием грамматики входного языка, приведенной в приложении 1;
удаление в правилах грамматики левой рекурсии;
утверждение уточненной грамматики у преподавателя;
разработка в соответствии с грамматикой и требованиями метода рекурсивного спуска распознающих процедур для каждого нетерминального символа грамматики;
разработка программной реализации синтаксического анализатора в целом;
тестирование лексического анализатора;
3) разработка программной реализации двухфазного (лексический и синтаксический анализ) компилятора в целом;
4) тестирование компилятора.
1.3. Требования к содержанию пояснительной записки
Пояснительная записка к курсовой работе должна быть оформлена в соответствии с требованиями ГОСТ и содержать следующие разделы:
- задание к выполнению курсовой работы;
- анализ задания с описанием всех типов используемых в задании лексем, операторов и их особенностей;
- описание выбранных способов организации таблиц лексического анализатора;
- автоматные грамматики для каждого из типов лексем;
- конечные автоматы для каждого из типов лексем;
- текст программы лексического анализатора;
- описание результатов тестирования лексического анализатора;
- описание уточненной грамматика входного языка в одной из трех возможных форм:
- форма Бэкуса-Наура;
- регулярных выражений (с метасимволами);
- графическая форма (синтаксические диаграммы);
- тексты распознающих процедур для метода рекурсивного спуска;
- текст программы синтаксического анализатора в целом;
- описание результатов тестирования синтаксического анализатора;
- описание принципов программной реализации двухфазного компилятора в целом;
- текст программы компилятора в целом;
- описание результатов тестирования компилятора в целом.
Любое отступление от приведенных требований ведет к снижению итоговой оценки.
1.4. Принципы оценки результатов работы
Выполненная работа оценивается по следующим параметрам:
- степень законченности и самостоятельности разработки компилятора;
- степень соответствия разработанного компилятора требованиям задания;
- степень соответствия содержания пояснительной записки требованиям п. 1.3 «Требования к содержанию пояснительной записки»;
- качество программной реализации компилятора (графический интерфейс, отсутствие зависаний, продуманность сообщений об ошибках);
- степень понимания автора работы того, что было сделано и приведено в пояснительной записке.