Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

spoPresentation2

.pdf
Скачиваний:
6
Добавлен:
11.05.2015
Размер:
4.74 Mб
Скачать

Конечные автоматы

КА M (Q, V, G, q0, F) называется детерминированным КА, если a V, q Q:

G(q,a)={r}, r Q либо G(q,a)=

т.е. в каждом из его состояний для любого входного символа функция перехода содержит не более одного состояния

Иначе КА недетерминированный

131

Связь КА и синтаксических диаграмм

<

>

=

=

< , >

!

A

C

 

<

 

 

>

 

 

=

=

B

 

 

!

132

Построение КА по леволинейной грамматике

Дано: регулярная леволинейная грамматика

G(T,N,P,S), задающая язык L (G)

Получить: эквивалентный ей КА

M(Q,V,G,q0,F), задающий тот же язык L(M) =

L(G)

Дополнительные условия: нет

1. Исходная грамматика G(T,N,P,S) преобразуется в эквивалентную ей автоматную грамматику G’(T’,N’,P’,S’)

133

Построение КА по леволинейной грамматике

2. На основе полученной грамматики G’(T’,N’,P’,S’) строится искомый КА

M(Q,V,G,q0,F)

2.1. Q = N’ {H}; V=T’; q0=H; F={S’}.

Множество состояний соответствует нетерминальному словарю, к которым добавляется еще одно состояние H. Входной алфавит – множеству терминальных символов. Начальное состояние - Н. Множество конечных состояний – аксиома S’

134

Построение КА по леволинейной грамматике

2.2. G (H, t) = { A | p P’ : Aot, A N’, t T’ }. В

функцию переходов для состояния H добавляются состояния А

2.3. G (В, t) = { A | p P’ : AoВt, A, В N’, t T’}.

В функцию переходов для состояния В

добавляются состояния А

135

Построение КА по леволинейной грамматике

Пример

G = ( {/,*,a,p,m}, {J,C,K,A,B,D,E}, P, J)

Р = { J o A/ | Bm

C o C/ | C* | Ca | Dm | E* K o K/ | K* | Ka | E/

A o C* B o Kp D o Cp E o / }

136

Построение КА по леволинейной грамматике

Пример

2.1. Q = { J,C,K,A,B,D,E,H }; V={ /,*,a,p,m }; q0 = H; F = {J}

 

2.2. E o /

 

G ( H, / ) = {E}

 

2.3.1. J o A/

 

G ( A, / ) = {J}

 

2.3.2. J o Bm

 

G ( B, m ) = {J}

 

2.3.3. C o C/

 

G ( C, / ) = {C}

 

2.3.4. C o C* ; A o C* G ( C, * ) = {C, A}

 

2.3.5. C o Ca

 

G ( C, a ) = {C}

 

2.3.6. C o Dm

 

G ( D, m ) = {C}

137

Построение КА по леволинейной грамматике

2.3.7. C o E*

 

G ( E, * ) = {C}

2.3.8. K o K/

 

G ( K, / ) = {K}

2.3.9. K o K*

 

G ( K, * ) = {K}

2.3.10. K o Ka

 

G ( K, a ) = {K}

2.3.11. K o E/

 

G ( E, / ) = {K}

2.3.12. B o Kp

 

G ( K, p ) = {B}

2.3.13. D o Cp

 

G ( C,p ) = {D}

138

Построение КА по леволинейной грамматике

G J

C

K A B D E H

/

C

K J

K E

*

C, A

K

C

a

C

K

 

p

D

B

 

m

 

 

J C

H /

КА недетерминирован

КА не полностью определен

D

pm

*

C

*

A

/

 

 

 

/ , * , a

 

J

E

 

 

 

 

/ , * , a

 

 

/

 

 

m

K

 

B

p

 

 

 

 

 

 

 

 

 

 

 

139

Построение КА по праволинейной грамматике

Дано: регулярная праволинейная грамматика

G(T,N,P,S), задающая язык L (G)

Получить: эквивалентный ей КА

M(Q,V,G,q0,F), задающий тот же язык L(M) =

L(G)

Дополнительные условия: нет

1. Исходная грамматика G(T,N,P,S) преобразуется в эквивалентную ей автоматную грамматику G’(T’,N’,P’,S’)

140

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