Научная литература
booksshare.net -> Добавить материал -> Лингвистика -> Гросс М. -> "Теория формальных грамматик " -> 58

Теория формальных грамматик - Гросс М.

Гросс М., Лантен А. Теория формальных грамматик — М.: Мир, 1971. — 296 c.
Скачать (прямая ссылка): teoriyaformalnihgrammatik1971.djvu
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 101 >> Следующая


Итерация А-языка есть А-язык. Действительно, если G есть А-грамматика с аксиомой A0, то добавление к ней всевозможных правил вида А~*аА0, где A-* а — правило G, дает А-грамматику, порождающую L(G)*. Легко видеть также, что обращение А-языка есть А-язык.

10.4.4. Теорема Клини

Класс А-языков совпадает с наименьшим классом языков, содержащим все конечные языки и замкнутым относительно операций объединения, умножения и итерации.

Доказательство. В одну сторону теорема следует из результатов п. 10.4.1—10.4.3, поскольку все конечные языки являются А-языками. Докажем обратное утверждение, т. е. покажем, что всякий А-язык может быть получен из конечных языков с помощью трех перечисленных операций. Для языка, порождаемого А-грамматикой, граф которой не содержит ни одной дуги, это утверждение очевидно. Пусть оно доказано для А-грамматик, графы которых содержат не более k дуг, и пусть G есть А-грамматика с k дугами в графе. Выбросим из этого графа некоторую дугу, ведущую из начальной вершины A0 в вершину В и помеченную символом а. Грамматику с таким графом обозначим G'. Грамматики, полученные из G': (1) переносом начальной вершины в В; (2) объявлением A0 единственной заключительной вершиной; (3) совместным выполнением предыдущих двух преобразований, — обозначим через Gi, G2 и G3 соответственно. Нетрудно видеть, что

L (G) = L (Gf) U L (G2) (aL (G3) )* aL (G1).

10.4.5. Разрешимые алгоритмические проблемы

Применительно к конечным автоматам могут быть сформулированы многие из тех проблем, которые возникали для машин Тьюринга и автоматов с магазинной памятью. Здесь эти проблемы оказываются, как правило, разрешимыми. А именно, существуют алгоритмы, позволяющие получить ответ «да» или «нет» на следующие вопросы: 170

Часть II. Некоторые замечательные классы языков

— допускает ли данный конечный автомат пустой язык;

— допускает ли данный автомат бесконечный язык;

— являются ли два данных конечных автомата эквивалентными.

10.4.6. Представление автоматных языков по Клини

Теорема Клини позволяет дать следующее простое рекурсивное определение А-языков.

Пусть имеется словарь V. Прежде всего мы определим представляющие выражения для цепочек из V*:

1) цепочка из V* есть представляющее выражение;

2) если X1 и X2— представляющие выражения, то XiX2 — тоже представляющее выражение,

3) если Xi (1 — представляющие выражения, то (Xir ..., Xim)', где ik = {1, - .., «}»— тоже представляющие выражения;

4) если Хь ..., Xn — представляющие выражения, то XiU ... ... U Xn — тоже представляющее выражение;

5) других представляющих выражений нет.

Эти выражения представляют множества цепочек из V* (языки в V) следующим образом:

1) цепочка из V* представляет самое себя (точнее, соответствующий «одноцепочечный язык»);

2) если Xi представляет множество Si, a X2 — множество S2, то XiX2 представляет S1S2, т. е. множество всех цепочек cpicp2, таких, что фі є 21 и ф2 є 2г;

3)—4) если Xi (1-Ci-^n) представляют множества цепочек 2і (1 -sCt-^Cra), то (Xji, ..., Xim)* представляет множество (Si U

... и S1J*, a X1 U ... U Xn — множество Si U ... USn.

В силу теоремы Клини всякий А-язык может быть задан некоторым представляющим выражением.

Примеры.

ab представляет язык, содержащий ровно одну цепочку ab;

(а)* представляет язык {ага|«^0}; (а)*(Ьу представляет язык {apbq\p, q^O}; (a, by представляет свободную полугруппу с образующими {а, Ь}\

(a)* U (0)" представляет язык {ар\ p>0}U{&? 1<7>0}.

Представляющим выражениям можно ставить в соответствие графы; например: Гл. X. Автоматные языки и конечные автоматы

171

Представляющее выражение

Соответствующий граф

О г)

ab

a b

О-,0

3)

(af

Qt



(а)'(Ь)"

Ql

X/

V a^vW.O5Tafi,a7f аЛ

6) (a'Jufb)'

Для'четвертого представляющего выражения обе вершины заключительные, а для шестого выражения все три вершины заключительные. Эти графы совпадают, очевидно, с графами соответствующих А-грамматик.

§ 10.5. А-ЯЗЫКИ И КС-ЯЗЫКИ

10.5.1. Самовставление

Особенность А-языков по сравнению с КС-языками заключается в том, что всякий А-язык может быть порожден грамматикой, в которой нет ни одного вспомогательного символа с самовставлением, тогда как существуют КС-языки, которые не порождаются никакими КС-грамматиками без самовставления.

Рассмотрим язык L = {anbn | п > 0}, порождаемый КС-грамматикой:

S-*aSb S->ab 172

Часть II. Некоторые замечательные классы языков

Докажем, что он не может быть порожден никакой А-грамма-тикой. Допустим, что А-грамматика, порождающая язык L, существует. Поскольку L бесконечен, в этой грамматике должны быть возможными выводы вида Ai=^xAu где х имеет вид аР; следовательно, в этой грамматике должны быть возможными и выводы вида

Al^yAh у = aqbr I q, О, Al^zAh z = bm.

Тогда данная грамматика будет порождать некоторые цепочки вида aPbi, где P^qi).

А-язык может быть порожден и грамматикой с самовставлением. Однако на вопрос, можно ли по данной КС-грамматике определить, порождает она А-язык или нет, приходится ответить отрицательно; это следует из нераспознаваемости автоматности дополнения к КС-языку (см. п. 8.1.2) 2).
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 101 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed