Воскресенье, 24.11.2024, 10:22
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Написать программу для автоматического построения грамматики
engineerklubДата: Четверг, 16.11.2023, 05:44 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: Offline
Написать программу для автоматического построения грамматики, эквивалентной заданному регулярному выражению

Тип работы: Работа Курсовая
Сдано в учебном заведении: СибГУТИ

Описание:
Курсовая работа по дисциплине: Теория языков программирования и методы трансляции. Вариант №6

Вариант 6
Задание:
Написать программу для автоматического построения грамматики, эк-вивалентной заданному регулярному выражению (РВ).
Вход программы: регулярное выражение в виде строки символов, 2 числа – диапазон длин для генерации цепочек.
Выход: построенная грамматика (все 4 элемента), результат генерации цепочек.
Подробно:
Язык задан регулярным выражением. При его записи могут быть ис-пользованы символы алфавита языка, а также: «+» (выбор одного из слага-емых), круглые скобки, «*» для обозначения итерации.
Программа должна:
1. по предложенному регулярному выражению строить эквивалентную грамматику, генерирующую этот же язык, в том виде, как она рассматрива-лась в теории, раздел 1.3.1;
2. с помощью построенной грамматики генерировать все цепочки язы-ка в заданном пользователем диапазоне длин.
Грамматика может строиться любая – контекстно-свободная или регу-лярная, по выбору разработчика. Отдельно следует указывать, какой нетер-минальный символ является целевым. Если в грамматике используется пу-стое правило, то необходимо дать пояснение, каким именно символом обо-значается пустая цепочка.
После построения грамматики пользователь может убедиться в её пра-вильности путём генерации всех цепочек языка в том диапазоне длин, ко-торый он задаст. Генерацию каждой цепочки языка следует поэтапно отоб-ражать на экране в виде цепочки вывода (в соответствии с примерами раз-дела 1.4.1.). Генерация осуществляется в соответствии с лабораторной ра-ботой №1. 
Описание алгоритма решения задачи с иллюстрацией его на сво-ём примере.
1. На вход программы подаётся регулярное выражение.
2. Производится разбор регулярного выражения:
1. Каждая скобка обозначается своим нетерминалом.
2. Если на скобке стоит звёздочка (итерация), значит, на этом нетер-минале будет явная рекурсия и пустое правило.
3. Если в выражении стоит «+», то это означает альтернативу в пра-вилах.
3. Вывод результата в виде КС-грамматики.

СКАЧАТЬ
 
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru