Veremutomták Formális nyelvek, 12. gykorlt Házi feldtok megoldás 1. feldt Oldjuk meg következő egyenletrendszert! X () Y = X X Y = Y Célj: A környezet-független nyelvek hsználtávl kpsoltos lpfeldtok egykorlás Foglmk: Szintxis-f, legl és legjo levezetés, ngy Br-Hillel lemm, felülről-lefelé és lulról-felfelé elemzés, LL(k), LR(k) nyelvtnok, verem-utomták. Feldtok jellege: Néhány szintxis-f egy konkrét 2. típusú nyelvtnn. Kisit onyolult nyelvtn esetéen (dott szóhoz) felülről-lefelé és z lulról-felfelé elemzés emuttás. Konkrét nyelvtnr z LL, LR tuljdonság deteketálás, illetve nem teljesülés kimuttás. Ngy Br-Hillel lemm lklmzás konkrét nyelvre. 1 verem építése kifejezésekhez, kettő verem ddogós nyelvhez. 2008/09 I. félév X = ( ) ( () Y ). A második egyenlete helyettesítve: ( ( ) () )Y ( ( ) ) = Y, miől Y = ( ( ) () ) ( ( ) ). Hsonlón: X = ( () 2 ) (() ). Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 1 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 2 / 23 Házi feldtok megoldás 2. feldt Htározzuk meg reguláris kifejezéssel z lái véges determinisztikus utomt áltl elfogdott nyelvet! Házi feldtok megoldás 3. feldt Készítsünk VDA-t következő reguláris kifejezéshez! ( ). q 0 q 1 q 2 q 1 q 3 q 4 q 2 q 3 q 4 q 3 q 0 q 3 q 4 q 4 q 4 X = Y Z Y = V Z = V V = X V V = (X ), Y = (X ), X = ( (X ) ) (X ), X = ( ) X ( ( ) ), X = (( ) ) ( ( ) ). q 3 ( ) (leontássl) q 2 q 1 q 4 q 5 q 6 q 7 q 8 q 9 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 3 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 4 / 23
Házi feldtok megoldás 3. feldt Készítsünk VDA-t következő reguláris kifejezéshez! ( ). Házi feldtok megoldás 3. feldt Készítsünk VDA-t következő reguláris kifejezéshez! ( ). (egyszerűsítve) q 1 q 2 q 6 q 8 q 9 (NDA NDA) q 1 q 2 q 6 q 8 q 9 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 5 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 6 / 23 Házi feldtok megoldás 3. feldt Készítsünk VDA-t következő reguláris kifejezéshez! ( ). VDA { } {q 2, q 6, q 9 } {q 1 } { } {q 2, q 6, q 9 } {q 2, q 9 } {q 1, q 6 } {q 8 } {q 1 } {q 2 } {q 1 } { } { } {} {} {} {q 2, q 9 } {q 2, q 9 } {q 1 } {} {q 1, q 6 } {q 2 } {q 1, q 6 } {q 8, } {q 8 } {} {} {q 8 } {q 2 } {q 2 } {q 1 } {} {} {} {} {} {q 8, } {} {} {q 8 } Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 7 / 23 Veremutomták Veremutomt (1-verem) ltt következő 7-est értjük: V = Q, T, Σ, δ, q 0, σ 0, F, hol Q T Σ δ q 0 Q σ 0 Σ F Q z állpotok (véges) hlmz egy áéé, emenő áéé verem áééje állpotátmeneti függvény, δ : Q (T {}) Σ 2 Q Σ kezdőállpot verem kezdőszimólum végállpotok hlmz. A veremutomt egy ütemen kiolvss központi egység állpotát, z input szó ktuális szimólumát és verem tetőelemét, ennek függvényéen új állpot kerül, verem tetőelemét felülírj egy vgy tö jellel (zz egy szóvl), z input szó következő etűjére áll z olvsófej (kivéve -mozgás) és tetőmuttó z új tetőelemre áll. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 8 / 23
Veremutomták Elfogdás, determinisztikus veremutomt (q, u, α) álljon zon állpot-veremtrtlom párokól, melyeket z u (T {}) inputsorozt végigolvsás után kphtunk, h kezdeten verem trtlm α és z állpot q, zz rekurzívn: 1. (q, t, σβ) = {(q, τβ) (q, τ) δ(q, t, σ)} 2. (q, vt, α) = {(q, τ) τ = βγ, (q, σγ) (q, v, α), (q, β) δ(q, t, σ)}. (τ, α, β, γ Σ, σ Σ, u, v T, t T, q, q, q Q) Tehát verem trtlmát egy τ Σ szó reprezentálj, verem tetőmuttój szó első etűjére mutt. V végállpottl elfogd egy u szót, h {q Q β Σ, (q, β) (q 0, u, σ 0 )} F. V üres veremmel elfogd egy u szót, h q Q, hogy (q, ) (q 0, u, σ 0 ). Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 9 / 23 Veremutomták Péld 1. Feldt Készítsünk végállpottl elfogdó veremutomtát következő L nyelvhez! L = {u {,, } u = ww 1, w {, } + } V = {q 0, q 1, q 2, q 3 }, {,, }, {#,, }, δ, q 0, #, {q 3 }. δ(q 0, t, #) = (q 1, t#) t {, } δ(q 1, t 1, t 2 ) = (q 1, t 1 t 2 ) t 1, t 2 {, } δ(q 1,, t) = (q 2, t) t {, } δ(q 2, t, t) = (q 2, ) t {, } δ(q 2,, #) = (q 3, #) Determinisztikus veremutomt: olyn veremutomt, melyre q Q, σ Σ, t T {} : δ(q, t, σ) 1. q Q, σ Σ : δ(q,, σ) 0 = t T : δ(q, t, σ) = 0. A fenti veremutomt determinisztikus. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 10 / 23 Veremutomták Péld Az 1. Feldt megoldás átmenetdigrmml: (,#) # (,) (,) (,) (,) (,) (,) (,) (,#) # (,) (, #) # q 0 q 1 q 2 q 3 Tehát veremől egy σ etűt kivenni δ(q, t, σ) = (q, ), verem trtlmát változtlnul hgyni δ(q, t, σ) = (q, σ), egy σ etűt etenni δ(q, t, σ) = (q, σ σ), tetőelemet felülírni egy tetszőleges τ Σ szóvl δ(q, t, σ) = (q, τ) szály megdásávl lehet. Megjegyzés: Nemdeterminisztikus veremutomt esetén δ(q, t, σ) = (q, τ), vlóján zt jelenti, hogy (q, τ) δ(q, t, σ), e helyett δ(q, t, σ)-t töértékűen djuk meg. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 11 / 23 Veremutomták Péld 2. Feldt Készítsünk végállpottl elfogdó veremutomtát következő L nyelvhez! L = {u {, } u = ww 1, w {, } + } V = {q 0, q 1, q 2, q 3 }, {, }, {#,, }, δ, q 0, #, {q 3 }. δ(q 0, t, #) = (q 1, t#) t {, } δ(q 1, t 1, t 2 ) = (q 1, t 1 t 2 ) t 1, t 2 {, } δ(q 1, t, t) = (q 2, ) t {, } δ(q 2, t, t) = (q 2, ) t {, } δ(q 2,, #) = (q 3, #) Itt tehát δ(q 1,, )-nk és δ(q 1,, )-nek két értéke vn, veremutomt nemdeterminisztikus. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 12 / 23
Veremutomták Péld 3. Feldt Készítsünk üres veremmel elfogdó veremutomtát sk z változót trtlmzó helyes kifejezések nyelvéhez! V = {q 0, q 1 }, {, +,,, /, (, )}, {#, (}, δ, q 0, #,. δ(q 0,, σ) = (q 1, σ) σ {#, (} δ(q 0, (, σ) = (q 0, (σ) σ {#, (} δ(q 1, t, σ) = (q 0, σ) σ {#, (}, t {+,,, /} δ(q 1, ), () = (q 1, ) δ(q 1,, #) = (q 1, ) δ(q 1,, #) és δ(q 1,, #) sem üres, tehét második feltétel nem teljesül, zz veremutomt nemdeterminisztikus. Veremutomták Péld 4. Feldt Készítsünk üres veremmel elfogdó veremutomtát z L = {u {, } l (u) = l (u)} nyelvhez! V = {q 0 }, {, }, {#, +, }, δ, q 0, #,. δ(q 0,, σ) = (q 0, +σ) σ {#, +} δ(q 0,, ) = (q 0, ) δ(q 0,, σ) = (q 0, σ) σ {#, } δ(q 0,, +) = (q 0, ) δ(q 0,, #) = (q 0, ) δ(q 0,, #) és δ(q 0,, #) sem üres, tehét második feltétel nem teljesül, zz veremutomt nemdeterminisztikus. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 13 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 14 / 23 Veremutomták Összefoglló Ngy Br-Hillel lemm Szükséges feltétel egy nyelv 2. típus trtozásár A determinisztikus veremutomták áltl elfogdott nyelvek osztály vlódi részhlmz veremutomták áltl elfogdott nyelvek osztályánk. A végállpottl és z üres veremmel elfogdó veremutomták áltl elfogdhtó nyelvek osztály megegyezik (ármely veremutomtához készíthető egy másik típusú vele ekvivlens veremutomt). A veremutomták áltl elfogdott nyelvek osztály megegyezik 2-es típusú nyelvtnok áltl generált nyelvek osztályávl (L 2 -vel). Ngy Br-Hillel-lemm Minden L L 2 esetén léteznek p, q > 0 nyelvfüggő egész konstnsok (p = p(l), q = q(l)), melyekre h u L, és l(u) > p, kkor u-nk létezik u = xyzvw felontás, hol l(yv) > 0, l(yzv) q és minden i 0 egészre xy i zv i w L. Kevésé formálisn lényeget következõképpen fejezhetjük ki: L minden elég hosszú szván vn két, egymáshoz közel lévõ, nem triviális, párhuzmosn eiterálhtó részszó. 2-vermek: Ezek már minden L 0 -eli nyelvet el tudnk fogdni, zz z 1-vermekhez képest már két osztálynyi z ugrás. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 15 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 16 / 23
Ngy Br-Hillel lemm Ngy Br-Hillel lemm 5. Feldt: L = { n n n n N}? L 2 Nem. Indirekt, tegyük fel, hogy L L 2. Ekkor Ngy Br-Hillel lemm szerint léteznek nyelvfüggő p és q konstnsok. Legyen M = mx{p, q}. Tekintsük z u = M M M szót. Mivel l(u) > M p, ezért Ngy Br-Hillel lemm szerint létezik z u-nk u = xyzvw felontás, hol l(yv) > 0, l(yzv) q M = l( M ) = l( M ) és {xy i zv i w i 0} L. Tehát vgy x, vgy w trtlmzz M -t részszóként. Tegyük fel, hogy x z ( másik eset teljesen nlóg). Vizsgáljuk meg, milyen szvkt kpunk y és v ( kettő közül leglá z egyik nem z üres szó) párhuzmos eiterálás során. A kpott szvk {xy i zv i w i 0}. 5. Feldt: L = { n n n n N}? L 2 (folyttás) H y vgy v vlmelyike k l lkű, hol k, l > 0, kkor eiterálás során olyn szvkt kpnánk melyek felváltv -ól és -ől álló lokkokt trtlmznk. H i 2, kkor ezek szvk nem lesznek L-eliek. H viszont y és v k vgy k lkú (leglá z egyik kitevő pozitív), kkor z iteráióvl olyn szvkt kpunk, melyek M M 1 M 2 lkúk. Így viszont i 2-re mx{m 1, M 2 } > M, zz kpott szó ez eseten sem L-eli, tehát kezdeti, indirekt feltevésünk volt hmis. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 17 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 18 / 23 Ngy Br-Hillel lemm 2. típusú nyelvtnok feletti szintxisfák A szintxisf definíiój 6. Feldt: L = { n2 n N}? L 2 Nem. Indirekt, tegyük fel, hogy L L 2. Ekkor Ngy Br-Hillel lemm szerint léteznek nyelvfüggő p és q konstnsok. Legyen M = mx{p, q}. Tekintsük z u = M2 szót. Mivel l(u) > M p, ezért Ngy Br-Hillel lemm szerint létezik z u-nk u = xyzvw felontás, hol K := l(yv) > 0, l(yzv) q M. xy i zv i w = M2 +(i 1)K. Mivel egy növekvő számtni soroztn iztosn vn nem négyzetszám, ezért Ngy Br-Hillel lemm feltétele nem teljesül, tehát L L 2. Legyen G = T, N, P, S tetszőleges 2-es típusú nyelvtn. A t nemüres fát G feletti szintxisfánk nevezzük, h: 1) Pontji T N {} elemeivel vnnk ímkézve. 2) Belső pontji N elemeivel vnnk ímkézve. 3) H egy első pont ímkéje X, közvetlen leszármzottjink ímkéi pedig lról jor olvsv X 1, X 2,..., X k, kkor X X 1 X 2... X k P. 4) Az -nl ímkézett pontoknk nins testvére. Szintxisfákkl levezetések szerkezetét árázoljuk. Jelölje egy dott t szintxisf leveleinek lról jor vló összeolvsását front(t), f gyökerét pedig gy(t). Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 19 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 20 / 23
2. típusú nyelvtnok feletti szintxisfák Legl és legjo levezetések 2. típusú nyelvtnok feletti szintxisfák Egyértelmű nyelv(tn) Legl illetve legjo levezetés: H levezetés folymán vlmely poziión ( mondtform i. etûjén) helyettesítés történik, kkor korái (1,..., i 1) illetve késői (i + 1, i + 2,...) pozíiókt levezetés már nem érinti. Legl (legjo) mondtform: Vlmely L(G)-eli szó legl (legjo) levezetése során elõforduló mondtform. Elemzés: u egy szintxisfájánk elkészítése, zz melyre gy(t) = S, és front(t) = u. A szóprolém eldöntésének szintxisf konstrukióján lpuló módszere jól hsználhtó progrmnyelvek elemzéséhez, ugynis z eljárás így z elemzendõ szó szerkezetét is megdj. Egyértelmű nyelvtn: minden u L(G)-nek pontosn egy szintxisfáj létezik. Egyértelmű nyelv: Létezik 2. típusú egyértelmű nyelvtn, mi generálj. Lényegesen nem egyértelmű nyelv: H nem létezik 2. típusú egyértelmű nyelvtn, mi generálj. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 21 / 23 Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 22 / 23 2. típusú nyelvtnok feletti szintxisfák 7. Feldt: G = {,, }, {S}, {S SS SS }, S ) Mutssunk példát egy leglá 7 hosszúságú szó legjo levezetésére! ) Egyértelmű-e nyelvtn? ) Egyeértelmű-e z L(G) nyelv? ) S SS SSS SSSS SSS SS S ) Nem, például. (S SS SSS és S SS SSS levezetéskezdetekhez más szintxisf trtozik.) ) Igen, például: G = {,, }, {S, A}, {S A AS, A A}, S. Formális nyelvek (12. gykorlt) Veremutomták 2008/09 I. félév 23 / 23