Вариант - 18. Функция ввода Console::ReadLine() языка C++
Необходимо выполнить разработку грамматики для заданного формального языка. Разработать и программно реализовать алгоритмы лексического и синтаксического анализа строк, записанных на данном языке.
Разработать язык и порождающую грамматику для выбранного варианта задания. Выполнить программную реализацию алгоритмов лексического и синтаксического анализа. Анализатор должен иметь средства диагностики лексических и синтаксических ошибок.
Требования к программе:
- Программа должна иметь графический интерфейс.
- Основные области окна: меню, панель инструментов, окно редактирования, окно для вывода сообщений.
- В программе должны быть стандартные команды для работы с файлами (создать, открыть, сохранить, сохранить как), редактирования текста (копировать, вставить, вырезать, отменить).
- Запуск анализа выполняется соответствующей командой.
- Результатом анализа правильной строки является синтаксическое дерево, которое строится в окне сообщений.
- При анализе выполняется диагностика и (желательно) нейтрализация ошибок.
- Если анализируемая строка содержит ошибки, то выводятся понятные неподготовленному пользователю сообщения о них.
Содержание отчета по курсовой работе:
- Постановка задачи (тема работы, особенности языка, примеры строк из языка).
- Грамматика (полное определение разработанной грамматики).
- Примеры синтаксических деревьев для разбора конкретных строк из языка.
- Классификация разработанной грамматики по Хомскому.
- Граф, если его можно построить. Пример разбора конкретной строки по графу.
- Алгоритм лексического анализа.
- Метод и алгоритм синтаксического анализа.
- Алгоритмы диагностики и нейтрализации (при наличии) ошибок.
- Программная реализация языкового процессора (скриншоты интерфейса программы, примеры анализа конкретных строк в программе).
- Выводы.
- Список использованной литературы и источников.
- Приложение. Листинг программы.