Тема: Разработка синтаксического анализатора (парсера).
Цель работы: Изучить назначение синтаксического анализатора. Спроектировать алгоритм и выполнить программную реализацию парсера.
В соответствии с вариантом задания на курсовую работу необходимо:
Требования к программе:
Окно вывода результатов можно реализовать в виде таблицы (элемент управления DataGridView). Столбцы таблицы представляют собой неверный фрагмент и его местоположение.
Конечный автомат принимает последовательность символов или команд, управляющих его состоянием.
Необходимо закодировать различными символами управляющие команды для автомата. Последовательность команд, заданная в виде строки управляющих символов, вводится в окно редактирования.
Можно задавать несколько независимых последовательностей команд. Каждая последовательность пишется с новой строки.
Программа выполняет анализ каждой строки символов, и выводит результаты в окне состояния.
Выходные данные – перечень состояний КА и результат обработки.
Если последовательность содержит ошибки, в окне сообщений выводится содержание ошибки и указывается команда, которая вызвала ошибку. Возможна выдача рекомендации по исправлению ошибки.
Рекомендуется ознакомиться с информацией о шаблоне проектирования "Состояние" и машинами состояния, например здесь:
"Состояние (шаблон проектирования)" на википедии
Студент, выполнивший задание на лабораторную работу, прикрепляет ссылку на git-репозиторий с кодом программы в системe DiSpace в контролирующее мероприятие “Лабораторная работа 3”. В README-файле должна быть отражена следующая информация: вариант задания, примеры допустимых строк, разработанная грамматика, классификация грамматики, граф конечного автомата, тестовые примеры.
Оценка за выполнение лабораторной работы выставляется, если:
Реализация данного задания является альтернативой защите лабораторной работы.
В соответствии с вариантом задания на курсовую работу необходимо:
Более подробно про программное обеспечение ANTLR можно прочитать в разделе 7.1 учебного пособия “Теория языков программирования: проектирование и реализация”, а также в представленном отчете.
Для защиты лабораторной работы студенту необходимо ознакомиться с теоретическим материалом, представленным в лекциях 9-10 (составитель Достовалов Д.Н.), а также быть готовым к вопросам и задачам в конце лекций. Рекомендуется ознакомиться с главой 3 учебного пособия “Теория языков программирования: проектирование и реализация”.