Теория формальных языков и компиляторов (ВИ-01) — Задание на курсовую работу

Задание:

Необходимо выполнить разработку грамматики для заданного формального языка. Разработать и программно реализовать (на языке C++) алгоритмы синтаксического анализа строк, записанных на данном языке.

Требования к программе (язык реализации C++):

  • Программа должна иметь пользовательский интерфейс (консольный).
  • В случае реализации консольного интерфейса предоставить пользователю возможность вводить (одну) строку языка.
  • Запуск анализа выполняется соответствующей командой.
  • Результатом анализа правильной строки является вывод сообщения об отсутствии ошибок.
  • Если анализируемая строка содержит ошибки, то выводятся сообщения о них (включая тип ошибки и ее местоположение).

Дополнительные требования к программе (язык реализации C#):

  • Программа должна иметь пользовательский интерфейс (оконный).
  • В случае реализации оконного интерфейса основные области окна составляют меню, панель инструментов, окно редактирования, окно для вывода сообщений.
  • В программе должны быть стандартные команды для работы с файлами (создать, открыть, сохранить, сохранить как), редактирования текста (копировать, вставить, вырезать, отменить).
  • При анализе выполняется диагностика и нейтрализация ошибок, в окно для вывода сообщения выводится исходная строка без ошибок.
  • Прикрепить ссылки на HTML-документы при вызове меню "Текст" (Постановка задачи, Грамматика, Классификация грамматики, Метод анализа, Диагностика и нейтрализация ошибок, Тестовый пример, Список литературы, Исходный код программы) и "Справка" (Вызов справки, О программе).

Содержание отчета по курсовой работе:

  • Введение / Постановка задачи (тема работы, особенности языка, примеры строк из языка).
  • Грамматика (полное определение разработанной грамматики).
  • Классификация разработанной грамматики по Хомскому.
  • Метод и алгоритм синтаксического анализа (граф автоматной грамматики).
  • Тестовые примеры (скриншоты интерфейса программы, примеры анализа конкретных строк в программе).
  • Заключение.
  • Список использованной литературы.
  • Приложение. Листинг программы.

1.    Грищенко Алексей Владимирович
Разработка грамматики и синтаксического анализатора: функция вывода printf языка С

2.    Ильин Данил Евгеньевич
перезачет

3.    Клемешова Анастасия Дмитриевна
перезачет

4.    Муравский Семен Станиславович
Разработка грамматики и синтаксического анализатора: оператор потокового ввода >> языка С++

5.    Наклоняев Николай Александрович
перезачет

6.    Налетов Павел Станиславович
Разработка грамматики и синтаксического анализатора: оператор цикла while языка С++

7.    Печко Андрей Васильевич
Разработка грамматики и синтаксического анализатора: оператор цикла for языка C/С++

8.    Привальцев Александр Александрович
Разработка грамматики и синтаксического анализатора: оператор потокового вывода << языка С++

9.    Семенов Владислав Сергеевич
Разработка грамматики и синтаксического анализатора: условный оператор языка C/С++ (if-else)

10.    Тараник Елизавета Юрьевна
Разработка грамматики и синтаксического анализатора: оператор цикла do…while языка C/С++

11. Федоров Кирилл Евгеньевич
Разработка грамматики и синтаксического анализатора: функция ввода scanf языка С