engineerklub | Дата: Среда, 07.12.2022, 22:28 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 28629
Статус: Offline
| Теория языков программирования и методы трансляции Вариант 6
Тип работы: Работа Курсовая Форматы файлов: Microsoft Word Сдано в учебном заведении: СибГУТИ
Описание: Курсовая работа
Вариант 6 Задание: Написать программу для автоматического построения грамматики, эк-вивалентной заданному регулярному выражению (РВ). Вход программы: регулярное выражение в виде строки символов, 2 числа – диапазон длин для генерации цепочек. Выход: построенная грамматика (все 4 элемента), результат генерации цепочек. Подробно: Язык задан регулярным выражением. При его записи могут быть ис-пользованы символы алфавита языка, а также: «+» (выбор одного из слага-емых), круглые скобки, «*» для обозначения итерации. Программа должна: 1. по предложенному регулярному выражению строить эквивалентную грамматику, генерирующую этот же язык, в том виде, как она рассматрива-лась в теории, раздел 1.3.1; 2. с помощью построенной грамматики генерировать все цепочки язы-ка в заданном пользователем диапазоне длин. Грамматика может строиться любая – контекстно-свободная или регу-лярная, по выбору разработчика. Отдельно следует указывать, какой нетер-минальный символ является целевым. Если в грамматике используется пу-стое правило, то необходимо дать пояснение, каким именно символом обо-значается пустая цепочка. После построения грамматики пользователь может убедиться в её пра-вильности путём генерации всех цепочек языка в том диапазоне длин, ко-торый он задаст. Генерацию каждой цепочки языка следует поэтапно отоб-ражать на экране в виде цепочки вывода (в соответствии с примерами раз-дела 1.4.1.). Генерация осуществляется в соответствии с лабораторной ра-ботой №1. Описание алгоритма решения задачи с иллюстрацией его на сво-ём примере. 1. На вход программы подаётся регулярное выражение. 2. Производится разбор регулярного выражения: 1. Каждая скобка обозначается своим нетерминалом. 2. Если на скобке стоит звёздочка (итерация), значит, на этом нетер-минале будет явная рекурсия и пустое правило. 3. Если в выражении стоит «+», то это означает альтернативу в пра-вилах. 3. Вывод результата в виде КС-грамматики.
СКАЧАТЬ
|
|
| |