Az LR elemző felépítése. Léptetés. Redukálás. Kiegészített grammatika. Mit kell redukálni? Kiegészített grammatika. elemző. elemző.



Hasonló dokumentumok
Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Házi feladatok megoldása. Veremautomaták. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 12. gyakorlat

Házi feladatok megoldása. Harmadik típusú nyelvek és véges automaták. Házi feladatok megoldása. VDA-hoz 3NF nyelvtan készítése

Házi feladatok megoldása. Automaták analízise, szintézise és minimalizálása. Házi feladatok megoldása. Házi feladatok megoldása

Környezetfüggetlen nyelvek

Irodalom. Formális nyelvek I. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

Fonya ZH recap szabivános typo lehet, bocs

Környezetfüggetlen nyelvek

Kombinációs hálózatok egyszerűsítése

4. Legyen Σ = {0, 1}. Adjon meg egy determinisztikus véges automatát, amely azokat a szavakat fogadja el,

Formális nyelvek. Aszalós László, Mihálydeák Tamás. Számítógéptudományi Tanszék. December 6, 2017

Formális nyelvek I/2.

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Vektortér fogalma vektortér lineáris tér x, y x, y x, y, z x, y x + y) y; 7.)

Irodalom. Formális nyelvek I/1. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

FELVÉTELI FELADATOK 6. évfolyamosok számára. M 1 feladatlap. Név:...

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Mérnöki modellalkotás Az elmélettől a gyakorlatig. Prefix fák tömörítése: a dinamikus programozás

Lineáris programozás

Arányosság. törtszámot az a és a b szám arányának, egyszer en aránynak nevezzük.

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

Improprius integrálás

Mintafeladatsor. Ismerd fel a szabályt, majd folytasd a sort még két elemmel! Ügyelj a szófajra is! Toldalékos szavakat nem írhatsz!

A Riemann-integrál intervallumon I.

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Programtervezési ismeretek

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

Jobbra és balraforgatás

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

Improprius integrálás

Formális nyelvek és automaták

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

A Philippus család antióchiai antoninianusai Antioch antoniniani of Philippus Family

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

IX. A TRIGONOMETRIA ALKALMAZÁSA A GEOMETRIÁBAN

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

3-4.elıadás: Optimális választás; A fogyasztó kereslete

6. Laboratóriumi gyakorlat KAPACITÍV SZINTÉRZÉKELŐK

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

FELVÉTELI FELADATOK 8. évfolyamosok számára. M 1 feladatlap. Név:...

A vasbeton vázszerkezet, mint a villámvédelmi rendszer része

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

5. Logaritmus. I. Nulladik ZH-ban láttuk: 125 -öt kapjunk. A 3 5 -nek a 3. hatványa 5, log. x Mennyi a log kifejezés értéke?

4. előadás Determinisztikus véges automaták

GAZDASÁGI MATEMATIKA I.

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Középiskolás leszek! matematika. 13. feladatsor

1. Laboratóriumi gyakorlat ELMÉLETI ALAPFOGALMAK

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

7. tétel: Elsı- és másodfokú egyenletek és egyenletrendszerek megoldási módszerei

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

PÉLDA: Négyezer-hatszázöt Jel Szám

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

REÁLIS GÁZOK ÁLLAPOTEGYENLETEI FENOMENOLOGIKUS KÖZELÍTÉS

FELVÉTELI FELADATOK 6. osztályosok számára M 2 feladatlap

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Nyelvek és Automaták

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

24. MŰVELETI ERŐSÍTŐK ALKALMAZÁSAI

PÉLDA: Négyezer-hatszázöt Jel Szám

(Nem jogalkotási aktusok) HATÁROZATOK

Aszimmetrikus hibák számítási módszere, a hálózati elemek sorrendi helyettesítő vázlatai. Aszimmetrikus zárlatok számítása.

Adatbázisok elmélete 4. előadás

FELVÉTELI VIZSGA, július 15.

Gyakorló feladatsor 9. osztály

1. MECHANIKA-MOZGÁSTAN GYAKORLAT (kidolgozta: Szüle Veronika, egy. ts.) Matematikai összefoglaló

Z600 Series Color Jetprinter

4. Hatványozás, gyökvonás

MAGYAR NYELVI FELADATLAP a 4. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

5. A logaritmus fogalma, a logaritmus azonosságai

ORSZÁGOS KÉSZSÉG- ÉS KÉPESSÉGMÉRÉS 2007

Háló, Boole-algebra. A György-féle feladatsor megoldókulcsa

MAGYAR NYELVI FELADATLAP a 4. évfolyamosok számára

MAGYAR NYELVI FELADATLAP

a b a leghosszabb. A lapátlók által meghatározott háromszögben ezzel szemben lesz a

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Mátrixok és determinánsok

Lineáris programozás

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Exponenciális és Logaritmusos feladatok

A feladat sorszáma: 4-6. Standardszint: 4-6.

ANYANYELVI FELADATLAP

MAGYAR NYELVI FELADATLAP a 8. évfolyamosok számára

A valós számok halmaza

Juhász István Orosz Gyula Paróczay József Szászné Dr. Simon Judit MATEMATIKA 10. Az érthetõ matematika tankönyv feladatainak megoldásai

I. HALMAZOK, KOMBINATORIKA

1. MECHANIKA-MOZGÁSTAN GYAKORLAT (kidolgozta: Szüle Veronika, egy. ts.) Matematikai összefoglaló

Műszaki folyamatok közgazdasági elemzése Előadásvázlat október 10. Monopólium

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

VI.8. PITI FELFEDEZÉSEK. A feladatsor jellemzői

MAGYAR NYELVI FELADATLAP a 8. évfolyamosok számára

FELVÉTELI FELADATOK 6. évfolyamosok számára. M 2 feladatlap. Név:...

KÉRDŐÍV A SZOCIÁLIS SZOLGÁLTATÁSOKRÓL ÉS GYERMEKELLÁTÁSOKRÓL 2013

9. évfolyam Hány darab ötjegyű kettes számrendszerbeli szám van?

Átírás:

Emlékeztető Emlékeztető: elemzési irányok Felülről lefelé lulról felfelé LR elemzések (z LR() elemzés) () () () () B B Forítóprogrmok előás (,C,T szkirány) () () () () () () () B () B () () () B () Ez egy legl levezetés! Ez egy legjo levezetés inverze! Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Emlékeztető Emlékeztető: lulról felfelé elemzések Emlékeztető Emlékeztető: lulról felfelé elemzési strtégiák visszlépéses keresés (ktrk): h nem sikerül eljutni strtszimólumig, lépjünk vissz, és válsszunk másik reukiót visszlépéses lulról felfelé elemzések (nem tnnyg) z elemzenő szöveg összetrtozó részeit helyettesítjük nemterminális szimólumokkl (reukió) és így lulról, kezőszimólum felé építjük fát. lssú h hiás szöveg, z sk túl későn erül ki Fő kérés: Mit reukáljunk? Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Emlékeztető Emlékeztető: lulról felfelé elemzési strtégiák visszlépéses keresés (ktrk): h nem sikerül eljutni strtszimólumig, lépjünk vissz, és válsszunk másik reukiót visszlépéses lulról felfelé elemzések (nem tnnyg) lssú h hiás szöveg, z sk túl későn erül ki preeeniák hsznált: z egyes szimólumok között junk meg preeenireláiókt és ennek segítségével htározzuk meg megfelelő reukiót preeeni elemzések (nem tnnyg) m már kevéssé hsznált operátorokkl felépített kifejezések esetén természetes hsznált Emlékeztető Emlékeztető: lulról felfelé elemzési strtégiák visszlépéses keresés (ktrk): h nem sikerül eljutni strtszimólumig, lépjünk vissz, és válsszunk másik reukiót visszlépéses lulról felfelé elemzések (nem tnnyg) lssú h hiás szöveg, z sk túl későn erül ki preeeniák hsznált: z egyes szimólumok között junk meg preeenireláiókt és ennek segítségével htározzuk meg megfelelő reukiót preeeni elemzések (nem tnnyg) m már kevéssé hsznált operátorokkl felépített kifejezések esetén természetes hsznált előreolvsás: olvssunk előre szövegen vlhány szimólumot, és z lpján öntsünk reukióról LR elemzések minen progrmozási nyelvhez lehet (LR) t készíteni mjnem minegyikhez lehet gyors (LLR) t készíteni Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

lpfoglmk z LR felépítése Léptetés lpfoglmk x y xy: emenet β β: ktuális montform egy része (veremen tároljuk) két lehetséges művelet: és reukálás LR: Left to right, using Rightmost erivtion (Blról jor, legjo levezetéssel) β x y x y emenet következő szimólumát verem tetejére helyezzük. β Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Reukálás lpfoglmk lpfoglmk Kiegészített grmmtik z α szály szerinti reukió. z elemzés végét rról fogjuk felismerni, hogy egy reukió ereménye kezőszimólum lett. x y x y Ez sk kkor lehet, h kezőszimólum nem forul elő szályok joollán. α β β verem tetején lévő szály-joollt helyettesítjük megfelelő nemterminális szimólumml. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 8 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) lpfoglmk Kiegészített grmmtik Mit kell reukálni? lpfoglmk z elemzés végét rról fogjuk felismerni, hogy egy reukió ereménye kezőszimólum lett. Ez sk kkor lehet, h kezőszimólum nem forul elő szályok joollán. Ezt nem minen grmmtik teljesíti, e minegyik kiegészíthető: legyen z új kezőszimólum legyen egy új szály z LR elemzésekhez minig kiegészített nyelvtnokt fogunk hsználni 8 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Mit kell reukálni? lpfoglmk Mit kell reukálni? lpfoglmk Egyszerű részmont (emlékeztető): α γαβ montform egyszerű részmont, h γβ γαβ. Egyszerű részmont (emlékeztető): α γαβ montform egyszerű részmont, h γβ γαβ. Nyél: montformán leglolli egyszerű részmont. 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Mit kell reukálni? lpfoglmk lpfoglmk nyél meghtározás Egyszerű részmont (emlékeztető): α γαβ montform egyszerű részmont, h γβ γαβ. Nyél: montformán leglolli egyszerű részmont. Prolém: Mi nyél? léptetni vgy reukálni kell? h tö lehetőség is vn, melyik szály szerint kell reukálni? Épp nyelet kell megtlálni reukióhoz. 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) lpfoglmk nyél meghtározás lpfoglmk LR(k) grmmtikák Mgyrázt z LR(k) efiníiójához Tegyük fel, hogy ekkel és reukálásokkl eljutottunk z αβw montformához, és itt β nyél: αw αβw. Prolém: Mi nyél? léptetni vgy reukálni kell? h tö lehetőség is vn, melyik szály szerint kell reukálni? LR(k) grmmtik: k szimólum előreolvsásávl elönthető, hogy mi legyen z elemzés következő lépése. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

lpfoglmk LR(k) grmmtikák Mgyrázt z LR(k) efiníiójához lpfoglmk LR(k) grmmtikák Mgyrázt z LR(k) efiníiójához Tegyük fel, hogy ekkel és reukálásokkl eljutottunk z αβw montformához, és itt β nyél: αw αβw. Tegyük fel, hogy egy ugynígy kezőő montform, z αβy felonthtó αβy = γδx móon, és een δ nyél, zz γbx γδx. Tegyük fel, hogy ekkel és reukálásokkl eljutottunk z αβw montformához, és itt β nyél: αw αβw. Tegyük fel, hogy egy ugynígy kezőő montform, z αβy felonthtó αβy = γδx móon, és een δ nyél, zz γbx γδx. z LR(k) tuljonság zt monj, hogy w-ől és y-ól előreolvsv k szimólumot, egyértelműen elönthető z elemzés következő lépése. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) lpfoglmk LR(k) grmmtikák Mgyrázt z LR(k) efiníiójához LR(k) efiníiój lpfoglmk LR(k) grmmtikák Tegyük fel, hogy ekkel és reukálásokkl eljutottunk z αβw montformához, és itt β nyél: αw αβw. Tegyük fel, hogy egy ugynígy kezőő montform, z αβy felonthtó αβy = γδx móon, és een δ nyél, zz γbx γδx. z LR(k) tuljonság zt monj, hogy w-ől és y-ól előreolvsv k szimólumot, egyértelműen elönthető z elemzés következő lépése. Ezért h FIRT k (w) = FIRT k (y), kkor αβw és αβy esetén is ugynzt kell sinálni: mivel αβw esetén z β szály szerint reukáltunk, ugynezt kellett sinálni αβy estén is, vgyis α = γ, β = δ, = B és y = x. Definíió: LR(k) grmmtik Egy kiegészített grmmtik LR(k) grmmtik (k ), h αw αβw γbx γδx αβy = γδx és FIRT k (w) = FIRT k (y) esetén α = γ, β = δ és = B. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) LR(k) efiníiój lpfoglmk LR(k) grmmtikák Pél z LR() elemzés menete Definíió: LR(k) grmmtik Egy kiegészített grmmtik LR(k) grmmtik (k ), h αw αβw γbx γδx αβy = γδx és FIRT k (w) = FIRT k (y) esetén α = γ, β = δ és = B. Grmmtik LR() grmmtik: előreolvsás nélkül elönthető z elemzés következő lépése. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Pél z LR() elemzés menete Pél z LR() elemzés menete Grmmtik Grmmtik Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z LR() elemzés menete Pél z LR() elemzés menete Grmmtik Grmmtik Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z LR() elemzés menete Pél z LR() elemzés menete Grmmtik Grmmtik reukálás () reukálás () Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 8 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Pél z LR() elemzés menete Pél z LR() elemzés menete Grmmtik Grmmtik reukálás () 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z LR() elemzés menete z LR() elemzés menete Léptetés vgy reukálás? z utomt műköése Grmmtik LR() elemzés: előreolvsás nélkül kell öntenünk! elfogás Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z LR() elemzés menete Léptetés vgy reukálás? z utomt műköése Pél z LR() elemzés menete z utomt műköése LR() elemzés: előreolvsás nélkül kell öntenünk! Ötlet: készítsünk egy véges eterminisztikus utomtát z átmeneteit vereme kerülő szimólumok htározzák meg kor terminális reukáláskor nemterminális mikor elfogó állpot jut, kkor kell reukálni Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Pél z LR() elemzés menete z utomt műköése Pél z LR() elemzés menete z utomt műköése Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z LR() elemzés menete z utomt műköése Pél z LR() elemzés menete z utomt műköése reukálás Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z LR() elemzés menete z utomt műköése Pél z LR() elemzés menete z utomt műköése reukálás 8 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Pél z LR() elemzés menete z utomt műköése Pél z LR() elemzés menete z utomt műköése reukálás elfogás - Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z utomt felépítése LR() elemek Hogyn építsük fel z utomtát? z utomt felépítése LR() elemek Hogyn építsük fel z utomtát? z utomt állpoti zt muttják meg, hogy melyik szály építéséen hol trtunk. Pélául: [.] jelentse zt, hogy z szimólumot már elemeztük, z rész még hátr vn. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z utomt felépítése LR() elemek Hogyn építsük fel z utomtát? z utomt állpoti zt muttják meg, hogy melyik szály építéséen hol trtunk. Pélául: [.] jelentse zt, hogy z szimólumot már elemeztük, z rész még hátr vn. Definíió: LR() elem H α grmmtik egy helyettesítési szály, kkor z α = α α tetszőleges felontás esetén [ α.α ] grmmtik egy LR() eleme. z utomt felépítése LR() elemek Hogyn építsük fel z utomtát? z utomt állpoti zt muttják meg, hogy melyik szály építéséen hol trtunk. Pélául: [.] jelentse zt, hogy z szimólumot már elemeztük, z rész még hátr vn. Definíió: LR() elem H α grmmtik egy helyettesítési szály, kkor z α = α α tetszőleges felontás esetén [ α.α ] grmmtik egy LR() eleme. H szály jooll n szimólumot trtlmz, kkor n + r LR()-elem trtozik hozzá..,.,.,. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

z utomt felépítése lezárás művelet z utomt egy állpotához tö LR()-elem is trtozht. Ezeket hlmzokt fogjuk knonikus hlmzoknk hívni. z utomt felépítése lezárás művelet z utomt egy állpotához tö LR()-elem is trtozht. Ezeket hlmzokt fogjuk knonikus hlmzoknk hívni. Milyen LR() elemek trtoznk egy hlmz? Pélául: H [.] állpotn vgyunk, kkor z és szályokt kezhetjük építeni, zz [.] és [.] is hozzátrtozik hlmzhoz. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z utomt felépítése lezárás művelet z utomt egy állpotához tö LR()-elem is trtozht. Ezeket hlmzokt fogjuk knonikus hlmzoknk hívni. Milyen LR() elemek trtoznk egy hlmz? Pélául: H [.] állpotn vgyunk, kkor z és szályokt kezhetjük építeni, zz [.] és [.] is hozzátrtozik hlmzhoz. z utomt felépítése z olvsás művelet Hogyn lépünk át z utomt egyik állpotáól másik? Definíió: lezárás (losure) H I grmmtik egy LR() elemhlmz, kkor losure(i) legszűke olyn hlmz, mely z lái tuljonságokkl renelkezik: I losure(i) h [ α.bγ] losure(i), és B β grmmtik egy szály, kkor [B.β] losure(i). Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z utomt felépítése z olvsás művelet z utomt felépítése z olvsás művelet Hogyn lépünk át z utomt egyik állpotáól másik? H [.] állpotn vgyunk, és kerül verem tetejére, kkor [.] állpot jutunk. Hogyn lépünk át z utomt egyik állpotáól másik? H [.] állpotn vgyunk, és kerül verem tetejére, kkor [.] állpot jutunk. Definíió: olvsás (re) H I grmmtik egy LR() elemhlmz, X peig terminális vgy nemterminális szimólum, kkor re(i, X ) legszűke olyn hlmz, mely z lái tuljonsággl renelkezik: h [ α.x β] I, kkor losure([ αx.β]) re(i, X ). Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

z utomt felépítése LR() knonikus hlmzok Definíió: LR() knonikus hlmzok losure([.]) grmmtik egy knonikus hlmz. H I grmmtik egy knonikus elemhlmz, X egy terminális vgy nemterminális szimólum, és re(i, X ) nem üres, kkor re(i, X ) is grmmtik egy knonikus hlmz. z első két szállyl z összes knonikus hlmz előáll. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z utomt felépítése LR() knonikus hlmzok Definíió: LR() knonikus hlmzok losure([.]) grmmtik egy knonikus hlmz. H I grmmtik egy knonikus elemhlmz, X egy terminális vgy nemterminális szimólum, és re(i, X ) nem üres, kkor re(i, X ) is grmmtik egy knonikus hlmz. z első két szállyl z összes knonikus hlmz előáll. z utomt felépítése: losure([.]) legyen kezőállpot. H I = re(i, X ), kkor z utomtán legyen X I I átmenet. végállpotok zok knonikus hlmzok, melyeken olyn elemek vnnk, hol pont szály végén vn. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z utomt felépítése Pél z utomt felépítése Pél grmmtik I = losure([.]) = {[.], [.]} Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = losure([.]) = {[.]} Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z utomt felépítése Pél z utomt felépítése Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = {[.]} I = re(i, ) = losure([.]) = {[.], [.], [.]} Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = losure([.]) = {[.]} 8 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Pél z utomt felépítése Pél z utomt felépítése Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]} I = re(i, ) = losure([.]) = {[.], [.], [.]} Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = losure([.]) = {[.]} Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z utomt felépítése Pél z utomt felépítése Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]} I = re(i, ) = losure([.]) = {[.]} Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél grmmtik I = losure([.]) = {[.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]} I = re(i, ) = {[.]} I = re(i, ) = losure([.]) = {[.]} Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Pél z utomt felépítése Pél z utomt felépítése Pél grmmtik... I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]}... re(i, ) = losure([.]) = {[.], [.], [.]} = I Pél grmmtik... I = re(i, ) = {[.], [.], [.]} I = re(i, ) = {[.]}... re(i, ) = I re(i, ) = losure([.]) = {[.]} = I Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

z utomt felépítése LR() tálázt z helyessége Véges-e z létrehozás? grmmtikánk véges sok szály vn véges sok LR() eleme vn állpot kió OK reukálás ( ) reukálás ( ) reukálás ( ) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z helyessége Véges-e z létrehozás? z helyessége Véges-e z létrehozás? grmmtikánk véges sok szály vn véges sok LR() eleme vn losure függvény kiszámítás véges sok lépésen efejezőik re függvény kiszámítás véges sok lépésen efejezőik grmmtikánk véges sok szály vn véges sok LR() eleme vn losure függvény kiszámítás véges sok lépésen efejezőik re függvény kiszámítás véges sok lépésen efejezőik véges sok LR()-elem htványhlmz is véges lehetséges knonikus hlmzok szám is véges Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z helyessége Véges-e z létrehozás? z helyessége Helyes-e z? grmmtikánk véges sok szály vn véges sok LR() eleme vn losure függvény kiszámítás véges sok lépésen efejezőik re függvény kiszámítás véges sok lépésen efejezőik véges sok LR()-elem htványhlmz is véges lehetséges knonikus hlmzok szám is véges z utomt pontosn kkor jut-e végállpot, h reukálni kell? megfelelő reukiót írj-e elő? z tálázt (z utomt) létrehozás véges sok lépésen efejezőik. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 8 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

Járhtó prefix z helyessége Járhtó prefix z helyessége Definíió: járhtó prefix H z αβx montform nyele β, kkor z αβ prefixeit z αβx járhtó prefixeinek nevezzük. Definíió: járhtó prefix H z αβx montform nyele β, kkor z αβ prefixeit z αβx járhtó prefixeinek nevezzük. járhtó prefixeket olvssuk végig nyél végének eléréséhez. Pél: z montform nyele. járhtó prefixei:,, 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Járhtó prefix z helyessége z helyessége Járhtó prefixre érvényes LR() elemek Definíió: járhtó prefix H z αβx montform nyele β, kkor z αβ prefixeit z αβx járhtó prefixeinek nevezzük. Definíió: járhtó prefixre érvényes LR() elemek grmmtik egy [ α.β] LR()-eleme érvényes γα járhtó prefixre nézve, h γx γαβx járhtó prefixeket olvssuk végig nyél végének eléréséhez. Pél: z montform nyele. járhtó prefixei:,, Mximális járhtó prefix: olyn járhtó prefix, mihez nem lehet új szimólumot hozzávenni, hogy járhtó prefixet kpjunk. Egy járhtó prefix épp kkor mximális, h végén vn nyél. 9 Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z helyessége Járhtó prefixre érvényes LR() elemek z helyessége z LR() elemzés helyessége Definíió: járhtó prefixre érvényes LR() elemek grmmtik egy [ α.β] LR()-eleme érvényes γα járhtó prefixre nézve, h γx γαβx z érvényes LR() elemek z ott járhtó prefix lehetséges folyttásit ják meg. Pél: z járhtó prefixre érvényes LR()-elemek: [.], [.], [.]. mximális járhtó prefixekre érvényes LR() elemek zok, hol pont szály végén vn. Tétel: z LR() elemzés ngy tétele Egy γ járhtó prefix htásár z utomtáj kezőállpotól olyn állpot kerül, melyhez trtozó knonikus hlmz éppen γ járhtó prefixre érvényes LR() elemeket trtlmzz. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)

z helyessége z LR() elemzés helyessége z helyessége Konfliktusok táláztn Tétel: z LR() elemzés ngy tétele Egy γ járhtó prefix htásár z utomtáj kezőállpotól olyn állpot kerül, melyhez trtozó knonikus hlmz éppen γ járhtó prefixre érvényes LR() elemeket trtlmzz. Hol hsználtuk ki, hogy LR() grmmtik? z tehát ig fog t előírni, míg veremen lévő járhtó prefix mximális nem lesz. H járhtó prefix mximális, kkor z reukálást ír elő. Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) z helyessége Konfliktusok táláztn z helyessége Konfliktusok táláztn Hol hsználtuk ki, hogy LR() grmmtik? Konfliktus: H egy I k knonikus hlmz lpján nem lehet egyértelműen elönteni, hogy z ott állpotn milyen kiót kell végrehjtni. /reukálás konfliktus: z egyik elem t, egy másik reukálást ír elő reukálás/reukálás konfliktus: z egyik elem z egyik szály szerinti, másik egy másik szály szerinti reukiót ír elő Hol hsználtuk ki, hogy LR() grmmtik? Konfliktus: H egy I k knonikus hlmz lpján nem lehet egyértelműen elönteni, hogy z ott állpotn milyen kiót kell végrehjtni. /reukálás konfliktus: z egyik elem t, egy másik reukálást ír elő reukálás/reukálás konfliktus: z egyik elem z egyik szály szerinti, másik egy másik szály szerinti reukiót ír elő z LR() tuljonság iztosítj tálázt konfliktusmentes kitöltését! Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés) Forítóprogrmok előás (,C,T szkirány) LR elemzések (z LR() elemzés)