Вариант 14: "Оператор потокового ввода >> языка С++". Разработать язык и порождающую грамматику. Выполнить программную реализацию алгоритма синтаксического анализа (парсер).
Необходимо выполнить разработку грамматики для заданного формального языка. Разработать и программно реализовать алгоритмы лексического и синтаксического анализа строк, записанных на данном языке. Анализатор должен иметь средства диагностики лексических и синтаксических ошибок.
Требования к программе:
- Программа должна иметь графический интерфейс.
- Основные области окна: меню, панель инструментов, окно редактирования, окно для вывода сообщений.
- В программе должны быть стандартные команды для работы с файлами (создать, открыть, сохранить, сохранить как), редактирования текста (копировать, вставить, вырезать, отменить).
- Запуск анализа выполняется соответствующей командой.
- Результатом анализа правильной строки является синтаксическое дерево, которое строится в окне сообщений.
- При анализе выполняется диагностика и (желательно) нейтрализация ошибок.
- Если анализируемая строка содержит ошибки, то выводятся понятные неподготовленному пользователю сообщения о них.
Содержание отчета по курсовой работе:
- Постановка задачи (тема работы, особенности языка, примеры строк из языка).
- Грамматика (полное определение разработанной грамматики).
- Примеры синтаксических деревьев для разбора конкретных строк из языка.
- Классификация разработанной грамматики по Хомскому.
- Граф, если его можно построить. Пример разбора конкретной строки по графу.
- Алгоритм лексического анализа.
- Метод и алгоритм синтаксического анализа.
- Алгоритмы диагностики и нейтрализации (при наличии) ошибок.
- Программная реализация языкового процессора (скриншоты интерфейса программы, примеры анализа конкретных строк в программе).
- Выводы.
- Список использованной литературы и источников.
- Приложение. Листинг программы.
"04_shornikov.pdf" - Теория и практика языковых процессоров: учебное пособие.
"Структура и элементы курсовой работы 1.doc" - понятно по названию