Эквивалентность магазинных автоматов и КС-грамматик

Теорема: Пусть G - КС-грамматика вида (V, N, S0, P), по грамматике G можно построить магазинный автомат М такой, что L(G)=L(M).

Автомат М строится следующим образом: М= ({q}, V, NÈV, d, q, S0, q)

1) Если в грамматике имеется правило A®a, то d(q, e, A)|- (q, a).

2) d(q, a, a)|- (q, e), "aÎV.

Пример:

G0: E®E+T|T V= {(,), +, *, a}

T®T*F|F N= {E, T, F}

F® (E)| a

Построим автомат, соответствующий этой грамматике:

M= ({q}, V, NÈV, d, q, E, q)

d(q, e, E)|- {(q, E+T), (q, T)}

d(q, e, T)|- {(q, T*F), (q, F)}

d(q, e, F)|- {(q, (E)), (q, a)}

d(q, (, ()|- (q, e)

d(q,),))|- (q, e)

d(q, +, +)|- (q, e)

d(q, *, *)|- (q, e)

d(q, a, a)|- (q, e)

Рассмотрим цепочку a+a*a

(q, a+a*a, E) |- (q, a+a*a, E+T) |- (q, a+a*a, T+T) |- (q, a+a*a, F+T) |- (q, a+a*a, a+T) |- (q, +a*a, +T) |- (q, a*a, T) |- (q, a*a, T*F) |- (q, a*a, F*F) |- (q, a*a, a*F) |- (q, *a, *F) |- (q, a, F) |- (q, a, a) |- (q, e, e).

Для любой КС-грамматики можно построить автомат, который является недетерминированным. Практически, нас интересуют только детерминированные автоматы, которые в каждом такте однозначное переходят в нужную конфигурацию. Существуют КС-языки, которые нельзя описать детерминированным магазинным автоматом. Язык, воспринимаемый детерминированным магазинным автоматом, называется детерминированным КС-языком.

Утверждение 1: Любой регулярный язык является детерминированным. Обратное неверно.

Утверждение 2: Любой детерминированный язык является КС-языком. Обратное неверно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: