
- •Требования к оформлению и выполнению лабораторных работ
- •Студента(ки) группы ит 10т…
- •Отчет должен содержать:
- •Лабораторная работа № 1 Универсальное множество, его подмножества. Определение числа элементов подмножеств
- •Задание
- •Методические указания
- •Лабораторная работа № 2 Бинарные отношения между элементами множества
- •Задание
- •Лабораторная работа № 2 Бинарные отношения между элементами множества
- •Задание
- •Лабораторная работа № 3 Создание формального языка по его вербальному описанию
- •Задание
- •Методические указания
- •Лабораторная работа № 4
- •Задание
- •Варианты индивидуальных заданий
- •Вопросы для самостоятельной подготовки
Варианты индивидуальных заданий
Вариант 0
Построить МП–распознаватель для распознания бинарных цепочек вида:
A = {0(n) 1(2n) 0(2m) 1(m)}.
Вариант 1
Построить МП–транслятор для следующего преобразования бинарных цепочек: A = { 1(2n) 0(m)} B = { 0(n) 1(2n+m)}.
Вариант 2
Построить МП–распознаватель для распознания бинарных цепочек вида:
A = {0(n) 1(2m) 0(m)1(3n)}.
Вариант 3
Построить МП–транслятор для следующего преобразования бинарных цепочек: A= {a(n+1) b(m)} B = {0(m) 1(3n)}.
Вариант 4
Построить МП–распознаватель для распознания цепочек, состоящих из символов a и b (в любой последовательности), в которых количество символов a на 2 больше, чем b.
Вариант 5
Построить МП–транслятор для следующего преобразования бинарных цепочек: A = {a(n) b(m)} B = {0(n) 1(2n+m+1)}.
Вариант 6
Построить МП–распознаватель для распознания бинарных цепочек вида:
A = {a(2n) b(m) a(n + 2m+1)}.
Вариант 7
Построить МП–транслятор для следующего преобразования цепочек:
A = {a(n) b(m) a(n) } B = { 0(3n) 1(2m+n)}.
Вариант 8
Построить МП–распознаватель для распознания бинарных цепочек вида:
A = {0(n) 1(2m) 0(2n + m+1)}.
Вариант 9
Построить МП–транслятор для следующего преобразования бинарных цепочек: A = {0(n) 1(m) 0(k)} B = {1(n+m) 0(2n – m+k)}, если (2n> m).
Вариант 10
Построить МП–транслятор для следующего преобразования бинарных цепочек: A = {1(n) 0(2m) 1(n) } B = {0(2n+1) 1(m)}.
Вариант 11
Построить МП–транслятор для следующего преобразования цепочек:
A = {a(2n) b(m) a(n)} B = {a(2m) b(n)}.
Примечания :
1 В заданиях для входных цепочек используется двухсимвольный алфавит V={0,1} или V={a,b}; в круглых скобках после символа алфавита указано, сколько раз подряд он должен повториться в правильной цепочке (степень символа).
2 Для МП–транслятора приведены входная и выходная цепочки.
3 Значения m,n,k = 1,2,3...
Вопросы для самостоятельной подготовки
1 Назначение и принципы работы автоматов с магазинной памятью (МП–автоматов).
2 Устройство и функционирование магазина МП–автомата.
3 Построение управляющей таблицы для МП–автомата и ее назначение.
4 Последовательность построения МП–автомата для распознания регулярных цепочек.
5 МП–транслятор, его назначение; отличие от МП–распознавателя.
Лабораторная работа № 6
Формальные языки и порождающие грамматики
Цель работы: – выработка навыков эквивалентного преобразования порождающих грамматик их минимизация, определения их типа; построение КА– или МП–распознавателей для этих грамматик.
Задание
Выполнить эквивалентные преобразования заданной порождающей грамматики с целью ее минимизации (упрощения) – исключить правила, содержащие недостижимые и непродуктивные нетерминальные символы. При необходимости – устранить левостороннюю рекурсию. Определить тип полученной грамматики и построить автомат для ее распознания (КА– или МП–распознаватель); реализовать автомат–распознаватель в виде программы на С++.
Для этого:
1) Проверить нетерминальные символы исходной грамматики на достижимость (все правила, в которые входят недостижимые нетерминалы исключить из множества правил).
2) Проверить нетерминальные символы полученной после выполнения п.1 грамматики на продуктивность (все правила, в которые входят непродуктивные нетерминальные символы исключить); к продуктивным на начальном этапе следует отнести также нетерминалы, для которых в множестве правил есть эпсилон–правила (нетерминал преобразуется в пустую цепочку).
3) Если в множестве правил есть правила с левосторонней рекурсией (правила вида A Aab), выполнить эквивалентное преобразование по устранению левосторонней рекурсии.
4) Определить с обоснованием тип и вид полученной после выполнения предыдущих пунктов грамматики.
5) В соответствии с известными алгоритмами построить автомат-распознаватель для полученной грамматики и реализовать его в виде программы на языке С++.
Выбор варианта: студент выбирает № варианта задачи, определив значение t , где t = Nmod9 – остаток от деления нацело числа N (порядковый номер студента в основном списке).
Таблица 6
№ варианта |
Грамматика
|
0 |
G[S] = ( VT = {a, b}; VN = { S, A, B, C, D }; P = { S abAa; S bS; A baB; A aCb; D a; B b } )
|
1 |
G[Z] = ( VT = {a, b}; VN = { Z, A, B, C }; P = { Z abA; Z baZ; A abAb; A bB; A ; C abZa; C } ) ( – пустая цепочка )
|
2 |
G[S] = ( VT = {a, b}; VN = { S, A, B, C, D }; P = { S aAb; S bS; A baB; A aC; D b; B b } )
|
3 |
G[S] = ( VT = {a, b}; VN = { S, A, B, C, D }; P = { S abA; S bS; A baBa; A aC; D aC; B b } )
|
4 |
G[Z] = ( VT = {a, b}; VN = { Z, A, B, C }; P = { Z abA; Z bZ; A aAb; A bB; A ; C aZB; C b} ) ( – пустая цепочка ) |
5 |
G[Z] = ( VT = {a, b}; VN = { Z, A, B, C }; P = { Z abA; Z bZ; A abAb; A bB; A ; C aZa; C } ) ( – пустая цепочка ) |
6 |
G[Q] = ( VT = {a, b}; VN = { Q, A, B }; P = { Q abQ; Q bA; A abA; A bB; B bB; B a } )
|
7 |
G[Q] = ( VT = {a, b}; VN = { Q, A, B }; P = { Q aQ; Q bA; A abA; A bB; B aB; B a } )
|
8 |
G[Z] = ( VT = {a, b}; VN = { Z, A, B, C }; P = { Z abA; Z bZ; A abAb; A bB; A ; C aZB; C b} ) ( – пустая цепочка ) |