Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции и практики / все лекции.doc
Скачиваний:
70
Добавлен:
20.06.2014
Размер:
1.14 Mб
Скачать

Связь автоматных грамматик и конечных автоматов

Грамматика называется праволинейной, если правая часть любого правила содержит не более одного нетерминального символа. При этом этот нетерминальный символ может быть только последним символом цепочки в правой части:

Модифицированной автоматной грамматикой называется такая грамматика, у которой все правила имеют вид: и имеется правило с пустой цепочкой.

Любая автоматная грамматика может быть преобразована в модифицированную.

Пример преобразования праволинейной грамматики в модифицированную:

1. S→cA

2. S→bc 2.1 S→bF

2.2 F→cG

2.3 G→ε

3. S→A 3.1 S→aD Преобразование правила 3 основано на том, что вместо А

3.2 S→cA надо подставить правые части тех правил, у которых в левой

3.3 S→ε части стоит символ А.

4. A→abbS 4.1 A→aD

4.2 D→bE

4.3 E→bS

5. A→cA

6. A→ε

Теорема: Класс языков, распознаваемых конечными автоматами, совпадает с классом языков, порождаемых модифицированными автоматными грамматиками.

При доказательстве теоремы необходимо установить взаимнооднозначное соответствие между модифицированными грамматиками и конечными автоматами. Соответствие строится следующим образом: если задан конечный автомат, то определено множество состояний S, алфавит входных символов T, множество конечных состояний S2, функция перехода δ и начальное состояние s0.

Для грамматики необходимо определить множество нетерминальных символов N, терминальных – Tг , начальный символ Sг и правила вывода P. Будем считать, что множество состояний S определяет множество нетерминальных символов N с точностью до переобозначения. По алфавиту входных символов автомата Т строится алфавит грамматики Тг. В качестве аксиомы грамматики Sг возьмём начальное состояние s0. Правила вывода Р будем строить следующим образом: функция перехода может быть определена набором значений и аргументов функций δ(q,a)=p. Каждой такой записи сопоставим правило: q → ap.

Для грамматики множество конечных состояний S2 описывать не следует.

При сопоставлении грамматике автомата аналогичным образом сопоставим , если имеется правилои состояниеq при входном символе a переходит в состояние р.

Множество S2 конечных состояний определяется правилом вида: . Каждой цепочке, допускаемой конечным автоматом, соответствует путь по графу из начальной вершиныSГ в конечную вершину К. По данной цепочке путь можно определить однозначно.

Используя преобразование грамматик, мы можем получить правила вида: . Подобные правила можно исключить. Кроме того, возможно наличие нетерминалов, которые не участвуют в выводе терминальных цепочек. Такие нетерминалы оказываются бесполезными, и их также желательно исключить. Могут оказаться нетерминалы, которых невозможно достичь из начального символа. Они называются недостижимыми. Их также исключают из рассмотрения. Таким образом, мы можем уменьшить грамматику.

Соседние файлы в папке Лекции и практики