Drzewa wywodu Drzewo wywodu a struktura słowa
Transkrypt
Drzewa wywodu Drzewo wywodu a struktura słowa
Wykład 3, str. 1 Drzewa wywodu ciąg terminali: 34 ∗ (x + 11) aksjomat hzmiennai ::= a b . . . z hcyfrai ::= 0 1 . . . 9 hcyfrai hliczbai ::= hliczbai hcyfrai hatomi ::= hzmiennai hliczbai ( hwyrażeniei ) hwyrażeniei + hskładniki hwyrażeniei ::= hskładniki hskładniki ::= hatomi hskładniki ∗ hatomi hwyrażeniei hskładniki ..... ....... . ..... ..... ........................................................ . . .........hatomi . ............. ................. ... . . . . . . . . . . ......... . . . ... ....... ....... . . . . . . . . . ...... . . . hwyrażeniei . . . . ..... ... . . . .... .... . . . . .... . ... . hskładniki .. ... . . .. ... . . . ... ....hwyrażeniei ... ... hatomi .. ... ... ... .. .. ... .. .. hskładniki hliczbai ... ... ... ... ... ... .. hatomi hliczbai ... . . ... ..... .... ... .... ... hzmiennai hcyfrai hcyfrai . . .. .... .... .. hskładniki hatomi hliczbai hliczbai hcyfrai hcyfrai 3 4 * ( x + 1 1 ) Wykład 3, str. 2 Drzewo wywodu a struktura słowa hwyrażeniei ::= 0 1 . . . 9 ( hwyrażeniei ) hwyrażeniei + hwyrażeniei hwyrażeniei ∗ hwyrażeniei ....... hwyrażeniei ....... ..... ..... ..... hwyrażeniei .... .... . hwyrażeniei hwyrażeniei ......... hwyrażeniei ... ... 2 + 5 ∗. 3 ... ... ... ... hwyrażeniei hwyrażeniei hwyrażeniei .... .... .... ..... hwyrażeniei ..... ..... ...... hwyrażeniei Niejednoznaczność wywodu: istnieją dwa różne drzewa wywodu danego słowa. W tym przypadku sugerują one kolejność działań: • drzewo górne odpowiada wykonaniu dodawania przed mnożeniem • drzewo dolne odpowiada wykonaniu mnożenia przed dodawaniem Wykład 3, str. 3 Drzewo wywodu a struktura słowa Gramatyka fragmentu języka polskiego: hzdaniei ::= hgr.podmiotui hgr.orzeczeniai hgr.podmiotui ::= hpodmioti hprzydawkai hgr.podmiotui hgr.orzeczeniai ::= hpodmioti ::= hprzydawkai ::= horzeczeniei ::= hdopełnieniei ::= hokoliczniki ::= horzeczeniei horzeczeniei hdopełnieniei hgr.orzeczeniai hokoliczniki Anka Basia Czesiek gruby stary bije kocha Ankę Basię Cześka w domu nocą Wykład 3, str. 4 Drzewo wywodu a struktura słowa hzdaniei hgr.orzeczeniai hgr.podmiotui hgr.podmiotui hgr.orzeczeniai hgr.orzeczeniai hgr.podmiotui hprzydawkaihprzydawkai hpodmioti horzeczenieihdopełnienieihokoliczniki hokoliczniki stary gruby Czesiek bije Ankę w domu nocą Wykład 3, str. 5 Drzewo wywodu a struktura słowa hzdaniei hgrupa podmiotui hpodmioti hgrupa orzeczeniai horzeczeniei = CZAS LECI JAK STRZAŁA = CZASOWE MUCHY LUBIĄ STRZAŁĘ hokoliczniki TIME FLIES LIKE AN ARROW hprzydawkai hpodmioti horzeczeniei hdopełnieniei hgrupa podmiotui hgrupa orzeczeniai hzdaniei Znaczenie zależy od drzewa rozbioru również w językach naturalnych. Wykład 3, str. 6 Drzewo wywodu a struktura słowa Z punktu widzenia należenia słowa do języka postać drzewa wywodu nie ma znaczenia. Z punktu widzenia przekazywanego sensu postać drzewa wywodu jest bardzo ważna. Przykład: jak policzyć wartość wczytywanej liczby? M hliczbai ::= hcyfrai hcyfrai hliczbai To sugeruje, że trzeba osobno znaleźć wartość pierwszej cyfry i osobno całej reszty a następnie jakoś te wartości połączyć: 3|456 = 3 · 103 + 456 — ale skąd z góry wiedzieć, do jakiej potęgi podnieść 10? hliczbai ::= hcyfrai hliczbai hcyfrai To sugeruje, że trzeba osobno znaleźć wartość ostatniej cyfry i osobno całej reszty a następnie jakoś te wartości połączyć: 345|6 = 345 · 10 + 6 — tak jest łatwiej zaprogramować. Rozumienie słowa oraz operacje na nim odbywają się faktycznie na jego drzewie wywodu. Wykład 3, str. 7 Akceptory: automaty skończone s Słowo abab: δ ∗hp, ababi = δ ∗hq, babi = δ ∗hq, abi = δ ∗hs, bi = δ ∗hq, λi = q odrzucone. t Słowo baab: δ ∗hp, baabi = δ ∗hr, aabi = δ ∗hr, abi = δ ∗hr, bi = δ ∗ht, λi = t zaakceptowane. Słowo λ: δ ∗hp, λi = p odrzucone. ............. ............. .... ...... b .... ......a ... ... .... ... .. .. .. .. . ... ... . .. . . . . . .. ❫.. ❫.. a . . . . . . . . . . . . . . . . . . . . . . . . q... ... ..✐ ............................. q b a✣ ✲ p b ❫ r b ......... .....................q ..✐ ............................. ... ... ... ✣ ... ... ... ... .... ..... .... a ........... a ... ... ... ✣ .... . ... .. . ... ...... ....... b ......... Słowo abbaba: δ ∗hp, abbabai = δ ∗hq, bbabai = δ ∗hq, babai = δ ∗hq, abai = δ ∗hs, bai = δ ∗hq, ai = δ ∗hs, λi = s zaakceptowane. Akceptacja słowa — od stanu początkowego do akceptującego. Wykład 3, str. 8 Akceptory: automaty skończone ............ ............... .... .......b ... ......a . . .. . ... ... . . .... .... .. . ... . ... . . . .. .. ❫.. ❫.. a . . . . . . . . . . . . . . . . . . . . . ..... q ..... ..✐ ............................. q a✣ ✲ s b p b ❫ r b .......... .....................q ..✐ ............................ ... ... ... ✣ ... .. ... .... ... ..... .... a ............ a t ... ... ... ✣ ... .. ... . . ... ..... ....... b ........... Funkcja przejścia automatu: δ p q r s t a q s r s r b r q t q t δ ∗hp, baabi = δ ∗ δhp, bi , aab D E D E = δ ∗ r, aab = δ ∗ δhr, ai , ab D E D E = δ ∗ r, ab = δ ∗ δhr, ai , b D = δ ∗ r, b = δ ∗ δhr, bi , λ = δ ∗ht, λi = t D E D E E Akceptacja słowa w: jeśli δ ∗hp, wi jest stanem akceptującym. Wykład 3, str. 9 Automaty skończone DEFINICJA: Deterministyczny automat skończony M — M • skończony zbiór Q stanów, • skończony zbiór Σ liter, • funkcja przejścia δ : Q × Σ → Q, • wyróżniony stan początkowy q0 ∈ Q, • wyróżniony zbiór stanów końcowych (akceptujących) F ⊆ Q. DEFINICJA: Uogólniona funkcja przejścia — δ ∗ : Q × Σ∗ → Q: q jeśli w = λ δ ∗hq, wi def = δ ∗ δhq, σi , w ′ D E jeśli w = σw ′ dla pewnych σ ∈ Σ i w ′ ∈ Σ∗ DEFINICJA: Automat M akceptuje słowo w jeśli δ ∗hq0 , wi ∈ F DEFINICJA: Język akceptowany przez automat M = hQ, Σ, δ, q0 , F i: def L(M ) = n w ∈ Σ∗ M akceptuje w o = n w ∈ Σ∗ δ ∗hq0 , wi ∈ F o