Лабораторная работа №1
Проектирование лексического анализатора
Задание работы:
- Проанализировать заданный программный фрагмента на языке PASCAL. Выделить типы имеющихся в нем лексем.
- Создать таблицу служебных, ключевых слов и разделителей, имеющихся во фрагменте.
- Для выделенных лексем построить регулярную грамматику.
- Для полученной грамматики построить диаграмму состояний конечного автомата.
- На основе автомата составить и отладить программу лексического анализатора. Программа на C++/C#.
Содержание отчета
- Титульный лист
- Краткое теоретическое обоснование
- Текст заданного фрагмента индивидуального задания
- Грамматику для имеющихся в сканируемом фрагменте программы лексем
- Диаграмму состояния соответствующего КА
- Текст программы сканера
- Таблицу распознанных лексем с указанием собственно лексемы (содержимое переменной А), типа лексемы и ее кодового представления.
- Содержимое диагностического файла для фрагмента (без ошибок и с сознательно допущенными ошибками)
Суть защиты работы: Преподаватель будет стараться "сломать программу". Соответственно работа зачтена, если он не найдет ошибок в ее работе.
Фрагмент кода на PASCAL в приложении.