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)