Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)
|
|
- Lajos Csonka
- 8 évvel ezelőtt
- Látták:
Átírás
1 Emlékeztető Emlékeztető: LR(0) elemzés A lexikális által előállított szimbólumsorozatot balról jobbra olvassuk, a szimbólumokat az vermébe tesszük. LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Emlékeztető Emlékeztető: LR(0) elemzés Emlékeztető Emlékeztető: LR(0) elemzés A lexikális által előállított szimbólumsorozatot balról jobbra olvassuk, a szimbólumokat az vermébe tesszük. Léptetés: egy új szimbólumot teszünk a bemenetről a verem tetejére. Redukálás: a verem tetején lévő szabály-jobboldalt helyettesítjük a szabály bal oldalán álló nemterminálissal. A lexikális által előállított szimbólumsorozatot balról jobbra olvassuk, a szimbólumokat az vermébe tesszük. Léptetés: egy új szimbólumot teszünk a bemenetről a verem tetejére. Redukálás: a verem tetején lévő szabály-jobboldalt helyettesítjük a szabály bal oldalán álló nemterminálissal. LR(0): az alkalmazandó műveletről előreolvasás nélkül döntünk. A háttérben egy véges determinisztikus automata működik: az automata átmeneteit a verem tetejére kerülő szimbólumok határozzák meg ha az automata végállapotba jut, redukálni kell egyéb állapotban pedig léptetni Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Emlékeztető Emlékeztető: LR(0) elemzés Emlékeztető Emlékeztető: LR(0) elemzés Az automata állapotai a kanonikus halmazok. Melyik szabály építésében hol tartunk éppen? elemei az LR(0)-elemek Kanonikus halmaz és jelentése A {[S a.ad], [A.bA], [A.c]} kanonikus halmaz jelentése: Lezárás Lezárás (closure) művelet: segítségével adhatók meg az egy kanonikus halmazba tartozó LR(0)-elemek. closure([s a.ad]) = {[S a.ad], [A.bA], [A.c]} Az adott állapotban az S aad, A ba és A c szabályok jobboldalait építhetjük. A S aad szabályból az a szimbólumot már elemeztük, az Ad rész még hátra van. A másik két szabály építése most kezdődhet. Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
2 Emlékeztető Emlékeztető: LR(0) elemzés Emlékeztető Emlékeztető: LR(0) elemzés Lezárás Lezárás (closure) művelet: segítségével adhatók meg az egy kanonikus halmazba tartozó LR(0)-elemek. closure([s a.ad]) = {[S a.ad], [A.bA], [A.c]} S A a b 0 b d A c S aad c A c A ba Olvasás Olvasás (read) művelet: megadja, hogy egy kanonikus halmazból egy adott szimbólum olvasásával melyik kanonikus halmazba jutunk. Ezek lesznek az automata átmenetei. read({[s a.ad], [A.bA], [A.c]}, b) = = closure([a b.a]) = = {[A b.a], [A.bA], [A.c]}... I = {[S a.ad], [A.bA], [A.c]}... I = read(i, b) = {[A b.a], [A.bA], [A.c]} I = read(i, c) = read(i, c) = {[A c.]} Elfogadó állapot: a hozzá tartozó elemeknek a végén van a pont Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Emlékeztető Emlékeztető: LR(0) elemzés Konfliktusok S A a b 0 b d A c S aad c A c A ba Az LR(0) tulajdonság biztosította, hogy a táblázat egy cellájába sem kerül két különböző műveletet, azaz a táblázat konfliktusmentes. Mi történik, ha nem LR(0) a grammatika? állapot akció S A a b c d 0 léptetés léptetés léptetés léptetés redukálás (A c) redukálás (S aad) redukálás (A ba) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Konfliktusok Az LR(0) tulajdonság biztosította, hogy a táblázat egy cellájába sem kerül két különböző műveletet, azaz a táblázat konfliktusmentes. Mi történik, ha nem LR(0) a grammatika? A helyes zárójelezés (S)S Konfliktusok Az LR(0) tulajdonság biztosította, hogy a táblázat egy cellájába sem kerül két különböző műveletet, azaz a táblázat konfliktusmentes. Mi történik, ha nem LR(0) a grammatika? A helyes zárójelezés (S)S S S (S)S (S) () S S (S)S (S) ((S)S) ((S)) (()) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
3 Konfliktusok : helyes zárójelezés Az LR(0) tulajdonság biztosította, hogy a táblázat egy cellájába sem kerül két különböző műveletet, azaz a táblázat konfliktusmentes. Mi történik, ha nem LR(0) a grammatika? A helyes zárójelezés (S)S S S (S)S (S) () S S (S)S (S) ((S)S) ((S)) (()) Az piros részek elolvasása után: az első esetben szerinti redukciót kell végrahajtani, a második esetben léptetni kell. Előreolvasás nélkül nem tudunk dönteni, nem LR(0) grammatika. grammatika S 0 S (S)S I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) : helyes zárójelezés : helyes zárójelezés grammatika (S)S 0 S I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} grammatika (S)S 0 S ( I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} I = read(i 0, () = {[S (.S)S], [S.], [S.(S)S]} 9 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) : helyes zárójelezés : helyes zárójelezés grammatika (S)S 0 S ( S I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} I = read(i 0, () = {[S (.S)S], [S.], [S.(S)S]} I = read(i, S) = {[S (S.)S]} grammatika (S)S 0 S ( S ( I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} I = read(i 0, () = {[S (.S)S], [S.], [S.(S)S]} I = read(i, S) = {[S (S.)S]} read(i, () = {[S (.S)S], [S.], [S.(S)S]} = I Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
4 : helyes zárójelezés grammatika (S)S 0 S ( S ) ( I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} I = read(i 0, () = {[S (.S)S], [S.], [S.(S)S]} I = read(i, S) = {[S (S.)S]} read(i, () = {[S (.S)S], [S.], [S.(S)S]} = I I = read(i, )) = {[S (S).S], [S.], [S.(S)S]} : helyes zárójelezés grammatika (S)S 0 S ( S ) S ( I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} I = read(i 0, () = {[S (.S)S], [S.], [S.(S)S]} I = read(i, S) = {[S (S.)S]} read(i, () = {[S (.S)S], [S.], [S.(S)S]} = I I = read(i, )) = {[S (S).S], [S.], [S.(S)S]} I = read(i, S) = {[S (S)S.]} S (S)S Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) : helyes zárójelezés grammatika (S)S 0 S ( S ) S ( ( I 0 = closure([s.s]) = {[S.S], [S.], [S.(S)S]} I = read(i 0, S) = {[.]} I = read(i 0, () = {[S (.S)S], [S.], [S.(S)S]} I = read(i, S) = {[S (S.)S]} read(i, () = {[S (.S)S], [S.], [S.(S)S]} = I I = read(i, )) = {[S (S).S], [S.], [S.(S)S]} I = read(i, S) = {[S (S)S.]} read(i, () = {[S (.S)S], [S.], [S.(S)S]} = I Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) S (S)S Konfliktusok az LR(0) táblázatban 0 S ( S ) S ( ( S (S)S akció S ( ) 0 léptetés / redukálás () léptetés / redukálás () léptetés léptetés / redukálás () ( redukálás (S (S)S) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) alapötlete Olvassunk előre egy szimbólumot! léptessünk, ha az automata tud lépni az előreolvasott szimbólummal redukáljunk, ha az előreolvasott szimbólum benne van a szabályhoz tartozó nemterminális FOLLOW halmazában alapötlete Olvassunk előre egy szimbólumot! léptessünk, ha az automata tud lépni az előreolvasott szimbólummal redukáljunk, ha az előreolvasott szimbólum benne van a szabályhoz tartozó nemterminális FOLLOW halmazában A helyes zárójelezés S S (S)S (S) () S S (S)S (S) ((S)S) ((S)) (()) I = {[S (.S)S], [S.], [S.(S)S]} Az piros részek elolvasása után I állapotban van az automata: az első esetben szerinti redukciót kell végrahajtani, mert ) FOLLOW (S). a második esetben léptetni kell, mert [S.(S)S] I. Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
5 szabályai Ha az aktuális állapot i, és az előreolvasás eredménye az a szimbólum: ha [A α.aβ] I i és read(i i, a) = I j, akkor léptetni kell, és átlépni a j állapotba, ha [A α.] I i (A S ) és a FOLLOW (A), akkor redukálni kell A α szabály szerint, ha [] I i és a = #, akkor el kell fogadni a szöveget, minden más esetben hibát kell jelezni. Ha az i állapotban A kerül a verem tetejére: ha read(i i, A) = I j, akkor át kell lépni a j állapotba, egyébként hibát kell jelezni. A helyes zárójelezés SLR() táblázata 0 S ( S ) S ( ( S (S)S FOLLOW (S) = { ), # } 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 9 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) S Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
6 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) S ) S ) S S ) S Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) S ) S S S ) S Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) ) S S ) S S ) S S Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 9 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
7 SLR() grammatika 0 léptetés, redukálás () redukálás () léptetés, redukálás () redukálás () léptetés, léptetés, redukálás () redukálás () redukálás (S (S)S) redukálás (S (S)S) S OK Definíció: SLR() grammatika Egy kiegészített grammatika SLR() grammatika, ha az SLR() táblázata konfliktusmentes. elnevezés: Simple LR jobb, mint az LR(0) a valódi programnyelvek nyelvtanai általában nem SLR() nyelvtanok 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel grammatika grammatika S U E U a E V = V V a Egy program az egy utasítás vagy egy értékadás. Egy utasítás az egy azonosító szimbólum. Egy értékadás változó legyen egyenlő változó alakú. Egy változó az egy azonosító szimbólum. S U E U a E V = V V a Egy program az egy utasítás vagy egy értékadás. Egy utasítás az egy azonosító szimbólum. Egy értékadás változó legyen egyenlő változó alakú. Egy változó az egy azonosító szimbólum. I 0 = {[S.S], [S.U], [S.E], [U.a], [E.V = V ], [V.a]}... I = read(i 0, a) = {[U a.], [V a.]} Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel grammatika S U E U a E V = V V a Egy program az egy utasítás vagy egy értékadás. Egy utasítás az egy azonosító szimbólum. Egy értékadás változó legyen egyenlő változó alakú. Egy változó az egy azonosító szimbólum. I = read(i 0, a) = {[U a.], [V a.]} FOLLOW (U) = {#} és FOLLOW (V ) = {=,#} Redukálás / redukálás konfliktus! I 0 = {[S.S], [S.U], [S.E], [U.a], [E.V = V ], [V.a]}... I = read(i 0, a) = {[U a.], [V a.]} FOLLOW (U) = {#} és FOLLOW (V ) = {=,#} Redukálás / redukálás konfliktus! Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
8 Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel Probléma az SLR() elemzéssel I = read(i 0, a) = {[U a.], [V a.]} FOLLOW (U) = {#} és FOLLOW (V ) = {=,#} Redukálás / redukálás konfliktus! Az a# szövegből az a elolvasása után az SLR() nem tud dönteni a U a és V a szerinti redukciók között, mert a következő szimbólum (#) benne van az U és a V FOLLOW halmazában is. I = read(i 0, a) = {[U a.], [V a.]} FOLLOW (U) = {#} és FOLLOW (V ) = {=,#} Redukálás / redukálás konfliktus! Az a# szövegből az a elolvasása után az SLR() nem tud dönteni a U a és V a szerinti redukciók között, mert a következő szimbólum (#) benne van az U és a V FOLLOW halmazában is. Pedig a szöveg elején a V -t csak az = szimbólum követheti... Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) alapötlete alapötlete a FOLLOW halmaz globális az egész grammatikára előfordulhat, hogy egy adott állapotban a FOLLOW halmaznak nem minden eleme követheti a szabályt a FOLLOW halmaz globális az egész grammatikára előfordulhat, hogy egy adott állapotban a FOLLOW halmaznak nem minden eleme követheti a szabályt Vegyük hozzá az LR(0) elemekhez azokat a szimbólumokat, amik követhetik a szabályt az adott állapotban! Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) LR() elemek Az létrehozása LR() elemek Az létrehozása Definíció: LR() elem Ha A α a grammatika egy helyettesítési szabálya, akkor az α = α α tetszőleges felbontás és a terminális szimbólum (vagy a = #) esetén [A α.α, a] a grammatika egy LR()-eleme. A α.α az LR() elem magja, a pedig az előreolvasási szimbóluma. Definíció: LR() elem Ha A α a grammatika egy helyettesítési szabálya, akkor az α = α α tetszőleges felbontás és a terminális szimbólum (vagy a = #) esetén [A α.α, a] a grammatika egy LR()-eleme. A α.α az LR() elem magja, a pedig az előreolvasási szimbóluma. [V a., =] jelentése: a V a szabály építését befejeztük és a szabályt az = szimbólum követheti. Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
9 A lezárás művelet Az létrehozása A lezárás művelet Az létrehozása Ha [V.V = V, #] állapotban vagyunk, akkor a V a szabályt kezdhetjük építeni, amit az = szimbólum követhet. Tehát az adott kanonikus halmazhoz [V.a, =] is hozzátartozik. Ha [V.V = V, #] állapotban vagyunk, akkor a V a szabályt kezdhetjük építeni, amit az = szimbólum követhet. Tehát az adott kanonikus halmazhoz [V.a, =] is hozzátartozik. Definíció: lezárás (closure) Ha I a grammatika egy LR() elemhalmaza, akkor closure(i) a legszűkebb olyan halmaz, amely az alábbi tulajdonságokkal rendelkezik: I closure(i) ha [A α.bγ,a] closure(i), és B β a grammatika egy szabálya, akkor b FIRST (γa) esetén [B.β,b] closure(i) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az olvasás művelet Az létrehozása Az olvasás művelet Az létrehozása Ha [V.V = V, #] állapotban vagyunk, és V kerül a verem tetejére, akkor [V V. = V, #] állapotba jutunk. Ha [V.V = V, #] állapotban vagyunk, és V kerül a verem tetejére, akkor [V V. = V, #] állapotba jutunk. Definíció: olvasás (read) Ha I a grammatika egy LR() elemhalmaza, X pedig terminális vagy nemterminális szimbóluma, akkor read(i, X ) a legszűkebb olyan halmaz, amely az alábbi tulajdonsággal rendelkezik: ha [A α.x β,a] I, akkor closure([a αx.β,a]) read(i, X ). Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) LR() kanonikus halmazok Az létrehozása szabályai Az létrehozása Definíció: LR() kanonikus halmazok closure([s.s, #]) a grammatika egy kanonikus halmaza. Ha I a grammatika egy kanonikus elemhalmaza, X egy terminális vagy nemterminális szimbóluma, és read(i, X ) nem üres, akkor read(i, X ) is a grammatika egy kanonikus halmaza. Az első két szabállyal az összes kanonikus halmaz előáll. Ha az aktuális állapot i, és az előreolvasás eredménye az a szimbólum: ha [A α.aβ, b] I i és read(i i, a) = I j, akkor léptetni kell, és átlépni a j állapotba, ha [A α., a] I i (A S ), akkor redukálni kell A α szabály szerint, ha [., #] I i és a = #, akkor el kell fogadni a szöveget, minden más esetben hibát kell jelezni. Ha az i állapotban A kerül a verem tetejére: ha read(i i, A) = I j, akkor át kell lépni a j állapotba, egyébként hibát kell jelezni. Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 9 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
10 grammatika S U E U a E V = V V a grammatika S U E U a E V = V V a 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} I = read(i 0, E) = {[S E., #]} grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} I = read(i 0, E) = {[S E., #]} I = read(i 0, a) = {[U a., #], [V a., =]} Nincs konfliktus! 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
11 grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} I = read(i 0, E) = {[S E., #]} I = read(i 0, a) = {[U a., #], [V a., =]} Nincs konfliktus! I = read(i 0, V ) = {[E V. = V, #]} grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} I = read(i 0, E) = {[S E., #]} I = read(i 0, a) = {[U a., #], [V a., =]} Nincs konfliktus! I = read(i 0, V ) = {[E V. = V, #]} I = read(i, =) = {[E V =.V, #], [V.a, #]} 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} I = read(i 0, E) = {[S E., #]} I = read(i 0, a) = {[U a., #], [V a., =]} Nincs konfliktus! I = read(i 0, V ) = {[E V. = V, #]} I = read(i, =) = {[E V =.V, #], [V.a, #]} I = read(i, V ) = {[E V = V., #]} grammatika S U E U a E V = V V a I = read(i 0, S) = {[., #]} I = read(i 0, U) = {[S U., #]} I = read(i 0, E) = {[S E., #]} I = read(i 0, a) = {[U a., #], [V a., =]} Nincs konfliktus! I = read(i 0, V ) = {[E V. = V, #]} I = read(i, =) = {[E V =.V, #], [V.a, #]} I = read(i, V ) = {[E V = V., #]} I = read(i, a) = {[V a., #]} 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az táblázat kitöltése Az táblázat kitöltése I 0 read(i 0, S) = I x = # S U E V 0 I 0 = {[S.S, #],[S.U, #], [S.E, #], [U.a, #], read(i 0, U) = I x = # S U E V 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
12 Az táblázat kitöltése Az táblázat kitöltése I 0 = {[S.S, #], [S.U, #],[S.E, #], [U.a, #], read(i 0, E) = I x = # S U E V 0 I 0 = {[S.S, #], [S.U, #], [S.E, #],[U.a, #], [E.V = V, #],[V.a, =]} read(i 0, a) = I 0 léptetés, Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az táblázat kitöltése Az táblázat kitöltése I 0 read(i 0, V ) = I I = {[., #]} Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az táblázat kitöltése Az táblázat kitöltése I = {[S U., #]} I = {[S E., #]} redukálás, S E Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
13 Az táblázat kitöltése Az táblázat kitöltése I = {[U a., #], [V a., =]} I = {[U a., #],[V a., =]} redukálás, S E redukálás, U a redukálás, S E redukálás, V a redukálás, U a 9 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az táblázat kitöltése Az táblázat kitöltése I = {[E V. = V, #]} read(i, =) = I I = {[E V =.V, #], [V.a, #]} read(i, V ) = I redukálás, S E redukálás, V a redukálás, U a léptetés, redukálás, S E redukálás, V a redukálás, U a léptetés, Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az táblázat kitöltése Az táblázat kitöltése I = {[E V =.V, #],[V.a, #]} read(i, a) = I I = {[E V = V., #]} redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
14 Az táblázat kitöltése Az a# szöveg elemzése I = {[V a., #]} redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V redukálás, V a Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V redukálás, V a a# Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az a# szöveg elemzése Az a# szöveg elemzése redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V redukálás, V a redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V redukálás, V a a# a# a# a# a a U Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Az a# szöveg elemzése Az a# szöveg elemzése redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V redukálás, V a redukálás, S E redukálás, V a redukálás, U a léptetés, léptetés, redukálás, E V = V redukálás, V a a# a# a# U S S OK 9 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) 0 Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
15 Az elemzés helyessége Az LR() táblázat konfliktusmentessége Az LR() létrehozása véges Az elemzés helyessége Tétel Egy grammatika pontosan akkor LR() grammatika, ha az LR() táblázatai konfliktusmentesek. az LR()-elemek száma véges a closure és read függvények kiszámítása véges a kanonikus halmazok száma véges a kanonikus halmazok kiszámítása véges Az LR() a megadott módon véges sok lépésben és teljesen automatikusan létrehozható. Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Járható prefix, érvényes LR-elem Az elemzés helyessége járható prefix: a mondatformának olyan prefixei, amelyek legfeljebb a nyél végéig tartanak ezeket járja be az automata a maximális járható prefixnek a végén ott a teljes nyél Járható prefix, érvényes LR-elem Az elemzés helyessége járható prefix: a mondatformának olyan prefixei, amelyek legfeljebb a nyél végéig tartanak ezeket járja be az automata a maximális járható prefixnek a végén ott a teljes nyél járható prefixre érvényes LR-elemek: a járható prefix lehetséges folytatásai melyik szabályok építésében hol tarthatunk egy adott járható prefix elemzése után? Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Járható prefix, érvényes LR-elem Az elemzés helyessége helyessége Az elemzés helyessége járható prefix: a mondatformának olyan prefixei, amelyek legfeljebb a nyél végéig tartanak ezeket járja be az automata a maximális járható prefixnek a végén ott a teljes nyél járható prefixre érvényes LR-elemek: a járható prefix lehetséges folytatásai melyik szabályok építésében hol tarthatunk egy adott járható prefix elemzése után? Az LR()-elemzés nagy tétele Egy γ járható prefix hatására az automatája a kezdőállapotból olyan állapotba kerül, amelyhez tartozó kanonikus halmaz éppen a γ járható prefixre érvényes LR() elemeket tartalmazza. Definíció: Járható prefixre érvényes LR()-elem A grammatika egy [A α.β, a] LR()-eleme érvényes a γα járható prefixre nézve, ha S γax γαβx, és x ǫ esetén a az x első szimbóluma, x = ǫ esetén pedig a = #. Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések) Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
16 helyessége Az elemzés helyessége Az LR()-elemzés nagy tétele Egy γ járható prefix hatására az automatája a kezdőállapotból olyan állapotba kerül, amelyhez tartozó kanonikus halmaz éppen a γ járható prefixre érvényes LR() elemeket tartalmazza. Összefoglalva: az LR() automatikusan és véges lépésben generálható a nyelvtan szabályaiból minden LR() grammatika elemezéséhez használható az mindig a helyes lépést írja elő a fenti tétel miatt Probléma: túl sok állapota van... Fordítóprogramok előadás (A,C,T szakirány) LR elemzések (SLR() és LR() elemzések)
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ő.
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
RészletesebbenA szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete
A szemantikus elemzés elmélete Szemantikus elemzés (attribútum fordítási grammatikák) a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák Fordítóprogramok előadás
RészletesebbenAutomaták és formális nyelvek
Automaták és formális nyelvek Bevezetés a számítástudomány alapjaiba 1. Formális nyelvek 2006.11.13. 1 Automaták és formális nyelvek - bevezetés Automaták elmélete: információs gépek általános absztrakt
RészletesebbenMiről mire fordít a fordítóprogram? Miről mire fordít az assembler? Mi a különbség a fordítóprogram és az interpreter között? Mi a virtuális gép?
1. Miről mire fordít a fordítóprogram? Általában magas szintű programozási nyelvről gépi kódra. 2. Miről mire fordít az assembler? Assembly nyelvről gépi kódra. 3. Mi a különbség a fordítóprogram és az
RészletesebbenFordítóprogramok szerkesztése Flex és Bison segítségével
Fordítóprogramok szerkesztése Flex és Bison segítségével Bodó Zalán Fordítóprogramok szerkesztése Flex és Bison segítségével Kolozsvár, 2014 c Bodó Zalán c Erdélyi Múzeum-Egyesület, 2014 Felelős kiadó
Részletesebben\ _/ / / _ \ ' / _` / ' / _ \ / _` (_) (_ (_) (_ \_ \ / _ \,_\ \ / \, / / 2.1. Alapfogalmak. 1. Mirol mire fordít a fordítóprogram?
\ _/ / _ _/ _ \ ' / _` / ' / _ \ / _` (_) (_ (_) (_ \_ \ / _ \,_\_ _ \ / \, / / 2.1. Alapfogalmak 1. Mirol mire fordít a fordítóprogram? magasszintű programozá si nyelvek gépi kód 2. Mirol mire fordít
RészletesebbenFordítóprogramok. Ajánlott irodalom. Jelölések 2. Jelölések 1. Fordítóprogramok szerkezete. Elıadó: Pozsgai Tamás. Aho-Sethi-Ullmann: Compilers
Fordítóprogramok Ajánlott irodalom Fordítóprogramok szerkezete Aho-Sethi-Ullmann: Compilers Csörnyei Zoltán: Fordítóprogramok Elıadó: Pozsgai Tamás A jegyzet Csörnyei Zoltán: Fordítóprogramok címő könyvének
RészletesebbenA számítógépes nyelvészet elmélete és gyakorlata. Automaták
A számítógépes nyelvészet elmélete és gyakorlata Automaták Nyelvek és automaták A nyelvek automatákkal is jellemezhetőek Automaták hierarchiája Chomsky-féle hierarchia Automata: új eszköz a nyelvek komplexitásának
RészletesebbenFordítóprogramok (A,C,T szakirány) Feladatgy jtemény
Fordítóprogramok (A,C,T szakirány) Feladatgy jtemény ELTE IK 1 Lexikális elemzés 1. Add meg reguláris nyelvtannal, reguláris kifejezéssel és véges determinisztikus automatával a következ lexikális elemeket!
RészletesebbenAutomaták mint elfogadók (akceptorok)
Automaták mint elfogadók (akceptorok) Ha egy iniciális Moore-automatában a kimenőjelek halmaza csupán kételemű: {elfogadom, nem fogadom el}, és az utolsó kimenőjel dönti el azt a kérdést, hogy elfogadható-e
RészletesebbenMintaFeladatok 2.ZH Megoldások
1. feladat Kérem e-mail-ben jelezze, ha hibát talál: (veanna@inf.elte.hu, vagy veanna@elte.hu ) P={ } S A B C AB SC AC a c BC b CS SS c S a kezdőjel Mivel a piramis tetején lévő kocka a mondatkezdő szimbólumot
RészletesebbenHázi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.
Nyelvtani transzformációk Formális nyelvek, 6. gyakorlat a. S (S) SS ε b. S XS ε és X (S) c. S (SS ) Megoldás: Célja: A nyelvtani transzformációk bemutatása Fogalmak: Megszorított típusok, normálformák,
RészletesebbenChomsky-féle hierarchia
http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
Részletesebben6. előadás A reguláris nyelvek jellemzése 2.
6. előadás A reguláris nyelvek jellemzése 2. Dr. Kallós Gábor 2014 2015 1 Tartalom A reguláris nyelvek osztályának jellemzése a körbebizonyítás Láncszabályok A 2. állítás és igazolása Ekvivalens 3-típusú
RészletesebbenFormális nyelvek és automaták
Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián 2. gyakorlat Ismétlés: Megjegyzés: Az ismétlés egy része nem szerepel a dokumentumban, mivel lényegében a teljes 1.
RészletesebbenMintaFeladatok 2.ZH Megoldások
Kérem e-mail-ben jelezze, ha hibát talál: (veanna@inf.elte.hu, vagy veanna@elte.hu ) 1. feladat megoldása a b 1 2 3 2 4 2 3 2 1 4 6 3 5 10 6 6 8 7 7 9 7 8 8 9 9 8 8 10 5 1 I. Összefüggőség vizsgálat. H0={1}
RészletesebbenAtomataelmélet: A Rabin Scott-automata
A 19. óra vázlata: Atomataelmélet: A Rabin Scott-automata Az eddigieken a formális nyelveket generatív szempontból vizsgáltuk, vagyis a nyelvtan (generatív grammatika) szemszögéből. A generatív grammatika
RészletesebbenA digitális számítás elmélete
A digitális számítás elmélete 8. előadás ápr. 16. Turing gépek és nyelvtanok A nyelvosztályok áttekintése Turing gépek és a természetes számokon értelmezett függvények Áttekintés Dominó Bizonyítások: L
RészletesebbenFordítóprogramok beugrókérdések
Fordítóprogramok beugrókérdések 1) Mirol mire fordít a fordítóprogram? Általában magas szintű programozási nyelvről gépi kódra. 2) Mirol mire fordít az assembler? Assembly nyelvről gépi kódra. 3) Mi a
Részletesebben5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1.
5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1. Dr. Kallós Gábor 2014 2015 1 Tartalom Reguláris kifejezések Meghatározás, tulajdonságok Kapcsolat a reguláris nyelvekkel A reguláris
RészletesebbenA Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:
A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt rövid kérdés megválaszolása egyenként 6 pontért, melyet minimum
RészletesebbenTárgymutató. Typotex Kiadó. Csörnyei Zoltán. akonyv 2007/3/9 6:29 page 315 # , >, 205 <, 96, 108, 115 >, 96, 108, 115 =, 96, 108
akonyv 2007/3/9 6:29 page 315 #327 Typotex Kiadó Tárgymutató Jelölések α,β,γ,..., vii, 290 a,b,c,..., vii, 290 A,B,C,..., vii B, 68 ε, vii F, 67 G, vii L, vii L, 68, 109 L(G), vii N, vii P, vii R, 109
RészletesebbenChomsky-féle hierarchia
http://www.cs.ubbcluj.ro/~kasa/formalis.html Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezet ), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
RészletesebbenInformatika szigorlat. A lexikális elemző feladatai közé tartozik a whitespace karakterek (a
Informatika szigorlat 17-es tétel: Felülről lefelé elemzések 1. Lexikális elemzés A lexikális elemző alapvető feladata az, hogy a forrásnyelvű program lexikális egységeit felismerje, azaz meghatározza
Részletesebben6. előadás A reguláris nyelvek jellemzése 2.
6. előadás A reguláris nyelvek jellemzése 2. Dr. Kallós Gábor 2015 2016 1 Tartalom A reguláris nyelvek osztályának jellemzése a körbebizonyítás Láncszabályok A 2. állítás és igazolása Ekvivalens 3-típusú
RészletesebbenTeljes visszalépéses elemzés
Teljes visszalépéses elemzés adott a következő nyelvtan S» aad a A» b c elemezzük a következő szöveget: accd» ccd ddc S S a A d a A b c d a c c d a c c d Teljes visszalépéses elemzés adott a következő
RészletesebbenFormális nyelvek - 9.
Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges
RészletesebbenFormális nyelvek és gépek (definíciós és tétel lista - 09/10/2)
Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2) ábécé: Ábécének nevezünk egy tetszőleges véges szimbólumhalmazt. Jelölése: X, Y betű: Az ábécé elemeit betűknek hívjuk. szó: Az X ábécé elemeinek
RészletesebbenFormális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések
1. Feladat Az első feladatban szereplő - kérdések 1 Minden környezet független nyelv felismerhető veremautomatával. Minden környezet független nyelv felismerhető 1 veremmel. Minden 3. típusú nyelv felismerhető
RészletesebbenFeladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!
Feladatok 1. A CYK algoritmus segítségével döntsük el, hogy cabcab eleme-e a G = {a, b, c}, {S, A, B, C, D, E}, P, S nyelvtan által generált nyelvnek! P: S AD EB SS A AB a B DD b C CB c D EC a E AD b 2.
RészletesebbenKiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
RészletesebbenFormális nyelvek - 5.
Formális nyelvek - 5. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Lineáris
RészletesebbenZH feladatok megoldásai
ZH feladatok megoldásai A CSOPORT 5. Írja le, hogy milyen szabályokat tartalmazhatnak az egyes Chomskynyelvosztályok (03 típusú nyelvek)! (4 pont) 3. típusú, vagy reguláris nyelvek szabályai A ab, A a
Részletesebben6. előadás Környezetfüggetlen nyelvtanok/1.
6. előadás Környezetfüggetlen nyelvtanok/1. Dr. Kallós Gábor 2013 2014 1 Tartalom Bevezetés CF nyelv példák Nyelvek és nyelvtanok egy- és többértelműsége Bal- és jobboldali levezetések Levezetési fák A
RészletesebbenSegédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
RészletesebbenFORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK. LABORGYAKORLATOK
FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK LABORGYAKORLATOK http://www.ms.sapientia.ro/~kasa/formalis.htm 0 Formális nyelvek és fordítóprogramok http://www.ms.sapientia.ro/~kasa/formalis.htm Jelenlét kötelezõ!
RészletesebbenLogika és számításelmélet. 10. előadás
Logika és számításelmélet 10. előadás Rice tétel Rekurzíve felsorolható nyelvek tulajdonságai Tetszőleges P RE halmazt a rekurzívan felsorolható nyelvek egy tulajdonságának nevezzük. P triviális, ha P
RészletesebbenFormális Nyelvek - 1. Előadás
Formális Nyelvek - 1. Előadás Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu
RészletesebbenFormális nyelvek előadások tavaszi félév
Formális nyelvek előadások 2018. tavaszi félév Követelmények Az aláírást mindenki megkapja ajándékba. A vizsga két részből áll, írásbeli és szóbeli vizsgából. Az írásbeli elégséges szintű teljesítése esetén
RészletesebbenFormális nyelvek és automaták
Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián Utolsó óra MINTA ZH Eötvös Loránd Tudományegyetem Informatikai Kar 2012.05.18 1. feladat: KMP (Knuth-Morris-Prett)
RészletesebbenFORDÍTÓPROGRAMOK. I. Előadás. Műszaki informatika szakos hallgatók számára Veszprémi Egyetem Számítástudomány Alkalmazása Tanszék 2002.
FORDÍTÓPROGRAMOK I. Előadás Műszaki informatika szakos hallgatók számára Veszprémi Egyetem Számítástudomány Alkalmazása Tanszék 2002. Ajánlott irodalom: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman Compilers
RészletesebbenA Turing-gép. Formális nyelvek III.
Formális nyelvek III. Általános és környezetfüggő nyelvek Fülöp Zoltán SZTE TTIK Informatikai Intézet Számítástudomány Alapjai Tanszék 6720 Szeged, Árpád tér 2. Definíció. Egy Turing-gép egy M = (Q,Σ,Γ,
RészletesebbenKészítette: Nagy Tibor István
Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:
RészletesebbenFeladatok: 1. Add meg a következ balreguláris nyelvtannak megfelel jobbreguláris nyelvtant!
Feladatok: 1. Add meg a következ balreguláris nyelvtannak megfelel jobbreguláris nyelvtant! Megoldás: S b A a Ezzel a feladattal az volt a gondom, hogy a könyvben tanultak alapján elkezdtem levezetni,
RészletesebbenFormális módszerek GM_IN003_1 Program verifikálás, formalizmusok
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott
Részletesebben5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás
Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:
RészletesebbenA fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása
A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus
RészletesebbenRekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
RészletesebbenCsempe átíró nyelvtanok
Csempe átíró nyelvtanok Tile rewriting grammars Németh L. Zoltán Számítástudomány Alapjai Tanszék SZTE, Informatikai Tanszékcsoport 1. előadás - 2006. április 10. Képek (pictures) I. Alapdefiníciók ábécé:
RészletesebbenAdatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája
Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból
RészletesebbenVéges automaták, reguláris nyelvek
Véges automaták, reguláris nyelvek Kiegészítő anyag az lgoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: lgoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 27. augusztus 3. véges automata
Részletesebbenü Ö ü í ü ü ü ü í Ö ö ü ú ü ü ö ü ü ű ö í í ö í űá ú ü ö ö ö í ü ü ü ü ü ű ö í í ö í ű ú ü ü í ü ü ű ö í í ö í űá ú ü íí ü Á í í í Á ű ú í ö ö í ü ö ö ö í ö í ú ö ü ü ű ö ö í ű ö í ű ü ű ö í ű ö í ö í
Részletesebbenó ű ó ü ó ó ü ó ü Í Ö Ő ű Á ó Á Á Á ó ü ó Ö Ö ÚÁ Ö Ó Ó Ó ó Á Ö Ö Á Ó Á Á ó Á Ö Ú Á Ú Ö Ö Á Ö ú Ú Ö ü ú ú ó ü ú ű ó ú ü ú ó ó ü ó ú ü ú Ű ó ü ó ú ó ű ó ú ú ú ó ó ú ú ü ó ü ó ú ó ó ü Ö ó ó ű ó ú ü Ö ű ó
RészletesebbenÉ ű Ö ű ű Ö ű ű ű É ű ű ű ű ű ű ű ű ű É ű ű ű ű ű ű Ó ű ű É ű ű ű ű ű Ö ű ű ű Ó ű Á Á ű ű ű Á Ü Ű ű ű ű Ő Á Á Á ű Á Á É É Á Á Á ű ű ű Á É Á Á ű Á ű Á Á ű ű ű ű ű ű ű ű ű ű ű ű Á Á É ű Á ű É ű Ü ű É É É
RészletesebbenÓ ő Ó ő ú ő ö ü Ó ő ö ő ü ő ö ő ü ö ö ő ö ü ú ö ő ü ú É ő ő ő ö ő ü ö Ó ő Á ő Á ú ü ő ú ú Ó ő Ó ő Á ő ő ő Ó ő Á ő ö ő ü ö ő ő ő ú ő Á ő ő ő Á ő ö ö ő ü ü ö ö ü ő É ő ő Á ő Á Ö ü ú ö Á ü ö ö ő ö ö ú ö ő
RészletesebbenHardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
RészletesebbenNP-teljesség röviden
NP-teljesség röviden Bucsay Balázs earthquake[at]rycon[dot]hu http://rycon.hu 1 Turing gépek 1/3 Mi a turing gép? 1. Definíció. [Turing gép] Egy Turing-gép formálisan egy M = (K, Σ, δ, s) rendezett négyessel
RészletesebbenA továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk
1. Kódelmélet Legyen X = {x 1,..., x n } egy véges, nemüres halmaz. X-et ábécének, elemeit betűknek hívjuk. Az X elemeiből képzett v = y 1... y m sorozatokat X feletti szavaknak nevezzük; egy szó hosszán
RészletesebbenAlapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
RészletesebbenFüggvények határértéke és folytonossága
Függvények határértéke és folytonossága 7. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Függvények határértéke p. / Függvény határértéke az x 0 helyen Definíció. Legyen D R, f
RészletesebbenMintaFeladatok 1.ZH Megoldások
Kérem e-mail-ben jelezze, ha hibát talál: (veanna@inf.elte.hu, vagy veanna@elte.hu ) 1. feladat L1 = {ab,ba,b} L2=b*ab* L3 = {a, bb, aba} L1L3 = {aba, abbb, ababa, baa, babb, baaba, ba, bbb, baba} (ab
RészletesebbenMintaFeladatok 1.ZH Megoldások
Kérem e-mail-ben jelezze, ha hibát talál: (veanna@inf.elte.hu, vagy veanna@elte.hu ) 1. feladat L1 = {ab,ba,b} L2=b*ab* L3 = {a, bb, aba} L1L3 = {aba, abbb, ababa, baa, babb, baaba, ba, bbb, baba} (ab+b)*
RészletesebbenA Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:
A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt kis kérdés megválaszolása egyenként 6 pontért, melyet minimum 12
Részletesebben... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
RészletesebbenALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha
ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig
Részletesebben2. Ítéletkalkulus szintaxisa
2. Ítéletkalkulus szintaxisa (4.1) 2.1 Az ítéletlogika abc-je: V 0 V 0 A következő szimbólumokat tartalmazza: ítélet- vagy állításváltozók (az állítások szimbolizálására). Esetenként logikai változónak
RészletesebbenA számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete
A számítógépes nyelvészet elmélete és gyakorlata Formális nyelvek elmélete Nyelv Nyelvnek tekintem a mondatok valamely (véges vagy végtelen) halmazát; minden egyes mondat véges hosszúságú, és elemek véges
RészletesebbenSzámításelmélet. Második előadás
Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi
Részletesebben3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI
3. Fuzzy aritmetika Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Intervallum-aritmetika 2 Fuzzy intervallumok és fuzzy számok Fuzzy intervallumok LR fuzzy intervallumok
RészletesebbenBisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le.
Bisonc++ tutorial Dévai Gergely A Bisonc++ egy szintaktikuselemz -generátor: egy környezetfüggetlen nyelvtanból egy C++ programot generál, ami egy tokensorozat szintaktikai helyességét képes ellen rizni.
RészletesebbenLogikai függvények osztályai. A függvényosztály a függvények egy halmaza.
Logikai függvények osztályai A függvényosztály a függvények egy halmaza. A logikai fügvények egy osztálya logikai függvények valamely halmaza. Megadható felsorolással, vagy a tulajdonságainak leírásával.
RészletesebbenFormális nyelvek és automaták előadások
VÁRTERÉSZ MAGDA Formális nyelvek és automaták előadások 2005/06-os tanév 1. félév Tartalomjegyzék 1. Előzetes tudnivalók 4 2. Bevezetés 15 3. Ábécé, szó, formális nyelv 17 4. Műveletek nyelvekkel 24 4.1.
RészletesebbenBASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
Részletesebben1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!
1. Részcsoportok A részcsoport fogalma. 2.2.15. Definíció Legyen G csoport. A H G részhalmaz részcsoport, ha maga is csoport G műveleteire nézve. Jele: H G. Az altér fogalmához hasonlít. Példák (1) C +
RészletesebbenKriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések
Kriptográfia 0 Számítás-komplexitási kérdések A biztonság alapja Komplexitás elméleti modellek független, egyenletes eloszlású véletlen változó értéke számítással nem hozható kapcsolatba más információval
RészletesebbenProgramozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás Programozási nyelv felépítése szabályok megadása Lexika Milyen egységek építik fel? Szintaktikus szabályok
RészletesebbenFogalomtár a Formális nyelvek és
Fogalomtár a Formális nyelvek és automaták tárgyhoz (A törzsanyaghoz tartozó definíciókat és tételeket jelöli.) Definíciók Univerzális ábécé: Szimbólumok egy megszámlálhatóan végtelen halmazát univerzális
Részletesebben1. előadás: Halmazelmélet, számfogalom, teljes
1. előadás: Halmazelmélet, számfogalom, teljes indukció Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető,
RészletesebbenAlap fatranszformátorok II
Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden
RészletesebbenSzemantikai elemzés. konzisztenciájának vizsgálata a szemantikai elemzés feladata lesz.
Szemantikai elemzés A szintaktikai elemzés meghatározta az elemzend szöveg szintaxisfáját. szintaxisfa pontjaihoz olyan attribútumokat rendelünk, amelyek leírják az adott pont tulajdonságait. Ezeknek az
Részletesebben2014. november 5-7. Dr. Vincze Szilvia
24. november 5-7. Dr. Vincze Szilvia A differenciálszámítás az emberiség egyik legnagyobb találmánya és ez az állítás nem egy matek-szakbarbár fellengzős kijelentése. A differenciálszámítás segítségével
RészletesebbenA SZÁMÍTÁSTUDOMÁNY ALAPJAI
Írta: ÉSIK ZOLTÁN A SZÁMÍTÁSTUDOMÁNY ALAPJAI Egyetemi tananyag 2011 COPYRIGHT: 2011 2016, Dr. Ésik Zoltán, Szegedi Tudományegyetem Természettudományi és Informatikai Kar Számítástudomány Alapjai Tanszék
Részletesebben9. előadás Veremautomaták 1.
9. előadás 1. Dr. Kallós Gábor 2014 2015 1 Tartalom Motiváció Verem és végtelen automata Felépítés, konfigurációk és átmenetek Szavak felismerése, felismert nyelv Az elfogadó állapottal és az üres veremmel
RészletesebbenLogika es sz am ıt aselm elet I. r esz Logika 1/36
1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika
RészletesebbenNyelv hatványa: Legyen L egy nyelv, nemnegatív egész hatványai,,. (rek. definició) Nyelv lezártja (iteráltja): Legyen L egy nyelv. L nyelv lezártja.
Univerzális ábécé: Szimbólumok egy megszámlálhatóan végtelen halmazát univerzális ábécének nevezzük Ábécé: Ábécének nevezzük az univerzális ábécé egy tetszőleges véges részhalmazát Betű: Az ábécé elemeit
RészletesebbenHalmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1
Halmazelmélet 1. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Halmazelmélet p. 1/1 A halmaz fogalma, jelölések A halmaz fogalmát a matematikában nem definiáljuk, tulajdonságaival
RészletesebbenRelációs adatbázisok tervezése ---2
Relációs adatbázisok tervezése ---2 Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 3.2.8. Funkcionális függ-ek vetítése 3.3.3. Boyce-Codd normálforma 3.3.4.
RészletesebbenTuring-gép május 31. Turing-gép 1. 1
Turing-gép 2007. május 31. Turing-gép 1. 1 Témavázlat Turing-gép Determinisztikus, 1-szalagos Turing-gép A gép leírása, példák k-szalagos Turing-gép Univerzális Turing-gép Egyéb Turing-gépek Nemdeterminisztikus
RészletesebbenBevezetés az informatikába
Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
RészletesebbenHá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
Hrmdik típusú nyelvek és véges utomták Formális nyelvek, 10. gykorlt Házi feldtok megoldás 1. feldt Melyik nyelvet fogdj el következő utomt? c q 0 q 1 q 2 q 3 q 1 q 4 q 2 q 4 q 2 q 0 q 4 q 3 q 3 q 4 q
RészletesebbenFormális nyelvek és automaták
2. megszorított grammatika/nyelv: Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián 4. gyakorlat + KES szabály mentesítés: - Új kezdő szimbólum, melyből levezethető
RészletesebbenAbsztrakt adatstruktúrák A bináris fák
ciós lámpa a legnagyobb élettartamú és a legjobb hatásfokú fényforrásnak tekinthető, nyugodtan mondhatjuk, hogy a jövő fényforrása. Ezt bizonyítja az a tény, hogy ezen a területen a kutatások és a bejelentett
RészletesebbenAz UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
RészletesebbenHalmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy
1. előadás: Halmazelmélet Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy hozzátartozik-e,
RészletesebbenFormális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar
Formális szemantika Kifejezések szemantikája Horpácsi Dániel ELTE Informatikai Kar 2016-2017-2 Az előadás témája Egyszerű kifejezések formális szemantikája Az első lépés a programozási nyelvek szemantikájának
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenDiszkrét matematika 1. estis képzés
Diszkrét matematika 1. estis képzés 2019. tavasz 1. Diszkrét matematika 1. estis képzés 5. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján
RészletesebbenA valós számok halmaza
VA 1 A valós számok halmaza VA 2 A valós számok halmazának axiómarendszere és alapvető tulajdonságai Definíció Az R halmazt a valós számok halmazának nevezzük, ha teljesíti a következő axiómarendszerben
Részletesebbenakonyv 2006/12/18 11:53 page i #1 Formális nyelvek és fordítóprogramok
akonyv 2006/12/18 11:53 page i #1 Csörnyei Zoltán Kása Zoltán Formális nyelvek és fordítóprogramok akonyv 2006/12/18 11:53 page ii #2 akonyv 2006/12/18 11:53 page iii #3 Csörnyei Zoltán Kása Zoltán FORMÁLIS
RészletesebbenTemporális logikák és modell ellenırzés
Temporális logikák és modell ellenırzés Temporális logikák Modális logika: kijelentések különböző módjainak tanulmányozására vezették be (eredetileg filozófusok). Ilyen módok: esetleg, mindig, szükségszerűen,
Részletesebben