Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.работы 1-6(dm).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
148.48 Кб
Скачать

Варианты индивидуальных заданий

Вариант 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} )

( пустая цепочка )

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]