4.6. Grmtyki regulrne G = < N,T,P,Z > jest grmtyką prwostronnie liniową, jeśli jej produkcje mją postć: ( i) U xv x T * U,V N ( ii) U x G = < N,T,P,Z > jest grmtyką prwostronnie regulrną, jeśli jej produkcje mją postć : ( i) U V T U,V N ( ii) U orz (iii) jeśli (Z ε) P to Z nie występuje w prwych stronch żdnej produkcji. (zęsto w definicji grmtyki regulrnej pomij się wrunek (iii) dotyczący niewystępowni Z w prwych stronch produkcji dopuszcz się z to produkcje U ε ; U N) nlogicznie określ się : -grmtyki lewostronnie liniowe U Vx x T * U,V N U x -grmtyki lewostronnie regulrne U V T U,V N U zkic lgorytmu przeksztłcni grmtyki prwostronnie liniowej w prwostronnie regulrną. We: G = < N,T,P,Z > G PLN Wy: G = < N,T,P,Z > G PRG L(G) = L(G ) Metod: P := P; N := N; for ( α) P do egin if α = x nd x = x 1...x n T * nd x 2 then egin := { x 1 1 ; 1 x 2 2 ;... ; n-1 x n }; P := P \ { x } ; N := N { 1,..., n-1 } ; end; if α = x nd x = x 1...x n T * nd x 2 then egin := { x 1 1 ; 1 x 2 2 ;... ; n-1 x n }; P := P \ { x } ; N := N { 1,..., n-1 } ; end; end;
Usunąć ε - produkcję (w rzie potrzey) ; Usunąć reguły łńcuchowe ; Usunąć symol początkowy z prwych stron produkcji (w rzie potrzey); /* lgorytm usuwni symolu początkowego ędzie podny później */ Przykłd: 1 1 1 1 1 1 2 2 2 2 2 2 ** 1 2 ε ε * 1 1 Grmtyk prwostronnie liniow * usunięcie ε-produkcji ** usunięcie produkcji łńcuchowych Grmtyk prwostronnie regulrn Przeksztłcenie grmtyki lewostronnie regulrnej w prwostronnie regulrną. We: G = < N,T,P,Z > G LRG G nie zwier symolu początkowego Z w prwych stronch produkcji Wy: G = < N,T,P,Z > G PRG Tk, że L(G ) = L(G) Metod: P := ; N := N {Z } {Z} for ( ) P : T do if =Z then P := P {Z } else P := P {Z }; for ( ) P : N, T do if =Z then P := P { } else P := P { }; Przykłd: G = < {,},{,},P, > G = <{,},{,},P, > Usuwnie reguł końcowych ( kosztem wprowdzeni ε - produkcji ) Produkcje końcowe : U : U N, T
We : G = < N,T,P,Z > G PRG Wy : G = < N,T,P,Z > - ez produkcji końcowych, tk że L(G ) = L(G) Metod: N := N; P := P; for ( x) P do if x T then egin N := N { x }; P := P { x x, x ε} { x}; end; Przykłd : G = < {,,,,R,Q},{,},P, > R R Q Q, ε ymol końcowy (nie mylić z symolem terminlnym) Wykres grmtyki (ez produkcji końcowych w postci grfu zorientownego ), N T Z ( ε) P Z symol początkowy grmtyki Z T, N ( ε) P ymol końcowy Przykłd: ε T;, N
R R Q ε Q Usuwnie symoli nieosiąglnych. Możn usunąć kżdą produkcję U V, tką, że U Z orz symol U nie występujący po prwej stronie żdnej produkcji. R Q nieosiąglny
Usuwnie symoli nieużytecznych. Możn usunąć wszystkie produkcje U V, gdzie V nie jest symolem końcowym orz V nie występuje po lewej stronie żdnej produkcji, z wyjątkiem yć może produkcji typu V V. R nieużyteczny Powyższe stwierdzeni nie są precyzyjne. okłdne lgorytmy podno dl grmtyk ezkontekstowych. ( G RG G K ) Przypomnienie: Ścieżk ciąg wierzchołków grfu zgodny z istniejącymi krwędzimi i ich zorientowniem. ef. Ścieżk końcow! Ścieżk K 0 K 1... K n tk, że K 0 = Z K n ziór symoli końcowych Ścieżk wyznczon przez słowo x=x 1 x 2...x n! ścieżk końcow K 0 K 1...K n tk, że K 0 x 1 K 1 K 1 x 2 K 2... K n-1 x n K n K n ε x L(G)! ścieżk wyznczon przez słowo x Tw. Język generowny przez grmtykę prwostronnie regulrną (ez produkcji końcowych) jest językiem regulrnym (tzn. określonym przez wyrżenie regulrne). [owód przez indukcję względem ilości krwędzi w grfie].
Z grmtyki prwostronnie regulrnej usuwmy jedną produkcję typu Z ( Z symol początkowy). Rozwżmy cztery grmtyki : Z G 1 G 2 Z W G 2 jedynym wierzchołkiem początkowym i końcowym jest Z. G 3 Z W G 3 jedynym wierzchołkiem początkowym jest i jedynym końcowym jest Z. Z G 4 L(G) = L(G 1 ) L(G 2 ) [ L(G 3 )] * L(G 4 ) Kżd ścieżk końcow w G jest lo końcow w G 1 lo może yć przedstwion w postci: x y 1 y 2... y m z sciezk końcow w G 2 scieżki końcowe w G 3 scieżk końcow w G 4 Przykłd: G Zudowć wyrżenie regulrne opisujące język generowny przez grmtykę dną grfem. G 1 L(G 1 )= { n n 0} = [ * ]
G 2 L(G 2 ) = { n n 0} = [ * ] G 3 L(G 3 ) = = [ϕ] G 4 L(G 4 ) = {} = [] L(G) = L(G 1 ) L(G 2 ) [L(G 3 )] * L(G 4 ) = [ * * (qϕ) * ] * * (ϕ) * = = * * ϕ * = = * * ε = = * * = = * ( ε) L(G) = [ * ( ε)]
Usuwnie symolu początkowego z prwych stron produkcji We : G = <N,T,P,Z> - regulrn ez produkcji końcowych Wy : G =<N,T,P,Z> - ez Z w prwych stronch produkcji L(G ) = L(G) Metod: P 1 := P; N := N; for ( ) P do if =Z then egin N := N {K}; P 1 := P 1 { Z} { K}; end; P := P 1 ; for ( X) P 1 nd (X = or X = ε) do if =Z then P := P {K X}; Przykłd : K K K K K K ε ε ε
K Tw. L 1 i L 2 języki regulrne generowne przez grmtyki G 1 = <N 1,T 1,P 1,Z 1 > G 2 = <N 2,T 2,P 2,Z 2 > Wówczs języki : (i) L 1 L 2 (ii) L 1 L 2 * (iii) L 1 są regulrne. Konstrukcję grmtyki G = <N,T,P,Z>, tkiej, że: (i). L(G) = L 1 (G 1 ) L 2 (G 2 ) (ii). L(G) = L 1 (G 1 ) L 2 (G 2 ) (iii). L(G) = [L 1 (G 1 )]* dokonujemy przy złożenich i oznczenich : (1) T = T 1 T 2 (2) N 1 N 2 = (jeśli nie, to możn nieterminle pomlowć n różne kolory) (3) G 1 i G 2 - grmtyki regulrne ez produkcji końcowych (4) F 1 i F 2 - ziór nieterminlnych symoli końcowych grmtyk G 1 i G 2 (5) Ziór symoli końcowych grmtyki G (i) Konstrukcj G = <N 1 N 2 {Z},T,P,Z > tkiej, że L(G) = L 1 (G 1 ) L 2 (G 2 ) if ε L 1 L 2 then F:= F 1 F 2 else F:= F 1 F 2 {Z}; P:= ; for ( ) P 1 do P:= P { }; for ( ) P 2 do P:= P { }; for (Z 1 ) P 1 do P:= P {Z };
for (Z 2 ) P 2 do P:= P {Z }; for F do P:= P { ε}; * Z 1 Z Z 2 * - Z 1 stł się nieosiąglny (ii) Konstrukcj G = < N 1 N 2,T,P,Z 1 > tkiej, że L(G) = L 1 (G 1 )L 2 (G 2 ) if Z 2 F 2 then F:= F 2 else F:= F 1 F 1 ; P:= ; for ( ) P 1 nd N 1 F 1 do P:= P { }; for ( ) P 1 nd F 1 do P:= P { } { (Z 2 ) P 2 }; for ( ) P 2 do P:= P { }; for F do P:= P { ε}; * Z 1 Z 2 * - i przestją yć symolmi końcowymi * (iii) Konstrukcj G = < N 1 {Z},T,P,Z > tkiej, że : L(G) = [L 1 (G 1 )] * F := F 1 {Z};
P:= ; for T nd N 1 F 1 do P := P { ( ) P 1 }; for T nd F 1 do egin P := P { ( ) P 1 }; P := P { (Z 1 ) P 1 }; end; for T do P := P {Z 1 (Z ) P 1 }; for F do P := P { ε}; c c c Z Z 1 Wrunek konieczny regulrności język : Tw. Jeśli L jest językiem regulrnym to k : (w L w k) (w = xuz 0 < u k i 0 : xu i z L) w x z x u z x u i z w k Przykłd : L 1 = { i i : i 0 } nie jest językiem regulrnym (jest ezkontekstowym). L 2 = { i : i 0 } jest językiem regulrnym opisnym przez wyrżenie regulrne * ). Grmtyk prwostronnie regulrn (ez produkcji końcowych) jest : (i) deterministyczn! ( ) P ( ) =
(ii) zupełn! ( N) ( T) ( ( ) P) ( N) Tw. Kżdą grmtykę regulrną możn rozszerzyć do grmtyki regulrnej i zupełnej generującej ten sm język. Tw. (Myhill) l kżdej grmtyki regulrnej istnieje generując ten sm język grmtyk deterministyczn i zupełn. Ze względu n ścisłą odpowiedniość pomiędzy grmtyką prwostronnie regulrną (ez produkcji końcowych) utomtem skończonym wygodnie jest prowdzić wszelkie dni i przeksztłceni grmtyk regulrnych dotyczące determinizmu i zupełności korzystjąc z prtu pojęciowego związnego z utomtem skończonym. Metody definiowni języków regulrnych. (i) wyrżenie regulrne (ii) grmtyk liniow lu regulrn (iii) utomt skończony Konstrukcj utomtu skończonego dl grmtyki prwostronnie regulrnej (ez produkcji końcowych) : We : G = <N,T,P,Z> - prwostronnie regulrn ez produkcji końcowych Wy: = <T,Q,F,q o,δ> - utomt skończony tki, że L() = L(G) Q := N; F := { N : ( ε) P}; q o := Z; for ( ) P do zliczyć do δ(,);