Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

Hasonló dokumentumok
Házi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat

MintaFeladatok 1.ZH Megoldások

Feladatok. 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!

Chomsky-féle hierarchia

MintaFeladatok 2.ZH Megoldások

6. előadás A reguláris nyelvek jellemzése 2.

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

6. előadás A reguláris nyelvek jellemzése 2.

MintaFeladatok 1.ZH Megoldások

Formális nyelvek - 5.

Chomsky-féle hierarchia

Fogalomtár a Formális nyelvek és

5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1.

Automaták és formális nyelvek

Formális Nyelvek - 1. Előadás

Feladatok. BNF,EBNF,szintaxisgráf

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

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:

Formális nyelvek előadások tavaszi félév

Logika és számításelmélet. 10. előadás

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:

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

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

Nyelv 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.

A digitális számítás elmélete

ALGEBRAI NYELV- ÉS KÓDELMÉLET. Babcsányi István


A SZÁMÍTÁSTUDOMÁNY ALAPJAI

Formális nyelvek - 9.

akonyv 2006/12/18 11:53 page i #1 Formális nyelvek és fordítóprogramok

9. előadás Környezetfüggetlen nyelvek

ZH feladatok megoldásai

Példák. Ismert a római számok halmaza, amely intuitív szintaxissal rendelkezik, hiszen pl.

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Atomataelmélet: A Rabin Scott-automata

MintaFeladatok 2.ZH Megoldások

Megoldások, megoldás ötletek (Jensen-egyenlőtlenség)

7. előadás Környezetfüggetlen nyelvtanok

Környezetfüggetlen nyelvtan. Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták. Backus-Naur forma

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Automaták mint elfogadók (akceptorok)

1/50. Teljes indukció 1. Back Close

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1


Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Formális nyelvek és automaták

Környezetfüggetlen nyelvtan. Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták. Backus-Naur forma

I. VEKTOROK, MÁTRIXOK

1. Algebrai alapok: Melyek műveletek az alábbiak közül?

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Diszkrét matematika 2. estis képzés

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

Analízis I. beugró vizsgakérdések

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

Csempe átíró nyelvtanok


Alap fatranszformátorok II

1. Lineáris leképezések

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Formális nyelvek és automaták

1. Interpoláció. Egyértelműség Ha f és g ilyen polinomok, akkor n helyen megegyeznek, így a polinomok azonossági tétele miatt egyenlők.

A Turing-gép. Formális nyelvek III.

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Az 1. forduló feladatainak megoldása

Középszintű érettségi feladatsorok és megoldásaik Összeállította: Pataki János; dátum: november. I. rész

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

Felismerhető nyelvek zártsági tulajdonságai II... slide #30. Véges nemdeterminisztikus automata... slide #21

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

4 = 0 egyenlet csak. 4 = 0 egyenletből behelyettesítés és egyszerűsítés után. adódik, ennek az egyenletnek két valós megoldása van, mégpedig

Véges automaták, reguláris nyelvek

Vektoralgebra feladatlap 2018 január 20.

Többváltozós függvények Riemann integrálja

1000 forintos adósságunkat, de csak 600 forintunk van. Egyetlen lehetőségünk, hogy a

A B C D EF C D EF C C BF A BC DE F D A E E E E D C C E DC C E E DC C C E D D E A D A E A

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

1. megold s: A keresett háromjegyű szám egyik számjegye a 3-as, a két ismeretlen számjegyet jelölje a és b. A feltétel szerint

Logikai szita (tartalmazás és kizárás elve)

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Algoritmuselmélet 7. előadás

1. Legyen egy háromszög három oldalának a hossza a, b, c. Bizonyítsuk be, hogy Mikor állhat fenn egyenlőség? Kántor Sándorné, Debrecen

Vektortér. A vektortér elemeit vektornak, a test elemeit skalárnak nevezzük. Ezért a függvény neve skalárral való szorzás (nem művelet).

Hraskó András, Surányi László: spec.mat szakkör Tartotta: Surányi László. Feladatok

Diszkrét matematika I.

6. előadás Környezetfüggetlen nyelvtanok/1.

Formális nyelvek és automaták előadások

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

Diszkrét matematika 2.C szakirány

A 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 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)


1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

V. Koordinátageometria

Logika es sz am ıt aselm elet I. r esz Logika 1/36

A következő feladat célja az, hogy egyszerű módon konstruáljunk Poisson folyamatokat.

Csima Judit BME, VIK, november 9. és 16.

Formális Nyelvek és Automaták v1.9

Tárgyév adata december 31. Tárgyév adata december 31. A tétel megnevezése

Formális nyelvek és automaták

10. előadás. Konvex halmazok

Átírás:

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, 0. típusú epszilon-mentesítés, 2. típusú epszilon-mentesítés, láncmentesítés, Chomsky-féle normálformává alakítás, reguláris műveletekre való zártságot bizonyító konstrukciók. Feladatok jellege: Konkrét nyelvtanokból kiindulva a konstrukciók tényleges, mechanikus elvégzése. 2008/09 I. félév a. és b.: HE, c.: HE). Például a: HE, a helyes zárójelezések nyelve, azaz u {(, )} HE l ( (u) = l ) (u) és minden v Pre(u) esetén l ( (v) l ) (v). Jelölje L a generált nyelvet. L HE : Minden újonnan behozott jobbzárójel elé valahova kerül ugyanakkor egy új balzárójel is. Így az aktuális mondatforma minden prefixében legalább annyi balzárójel van mint jobb. Formálisan: Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 1 / 21 Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 2 / 21 a. S (S) SS ε b. S XS ε és X (S) c. S (SS ) a. S (S) SS ε b. S XS ε és X (S) c. S (SS ) Ha α {S, (, )}, legyen φ(α) a következő tulajdonság: u Pre(α) : l ( (u) l ) (u) és l ( (α) = l ) (α). Állítás: Ha S α, akkor φ(α). A levezetés hosszára vonatkozó teljes indukcióval bizonyítunk. Ha α = S, akkor igaz az állítás. Tegyük fel, hogy S n α = α 1 Sα 2 β i (i = 1, 2, 3), ahol β 1 = α 1 (S)α 2, β 2 = α 1 SSα 2, β 3 = α 1 α 2. Az indukciós feltevés miatt φ(α), be kell látni, hogy φ(β i ) (i = 1, 2, 3). Legyen u Pre(β i ), azaz uv = β i (i = 1, 2, 3). Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 3 / 21 Ha u Pre(α 1 ), akkor az indukció alapján l ( (u) l ) (u). Ha v Suf(α 2 ), akkor u, u v = α. Az indukció alapján l ( (u ) l ) (u ) és akármelyik szabályt is alkalmaztuk, ugyanannyival (i = 2, 3 esetén 0-val, i = 1 esetén 1-gyel) nőtt a bal- és jobbzárójelek száma u-ban u -höz képest. Tehát l ( (u) l ) (u). Ha u = α 1 γ 1 és v = γ 2 α 2, (azaz γ 1 prefixe valamelyik levezetési szabály jobboldalának) akkor indukció alapján l ( (α 1 ) l ) (α 1 ) és könnyen ellenőrizhető, hogy l ( (γ 1 ) l ) (γ 1 ), tehát l ( (u) = l ( (α 1 ) + l ( (γ 1 ) l ) (α 1 ) + l ) (γ 1 ) = l ) (u). l ( (β i ) = l ) (β i ), hiszen minden szabály jobboldala ugyanannyi bal- és jobbzárójelet tartalmaz (0-t vagy 1-et), tehát φ(β i ), (i = 1, 2, 3). Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 4 / 21

a. S (S) SS ε b. S XS ε és X (S) c. S (SS ) 2. feladat Adjunk az L = {v; v = uu} (T = {a, b}) nyelvet generáló nyelvtant a vv 1 alakú szavak nyelvénél látott módszerre való visszavezetéssel! L HE : A zárójelek számára vonatkozó indukcóval belátjuk, hogy minden helyes zárójelezés levezethető. Az üres zárójelezés az S ε szabállyal levezethető. Tekintsünk egy w helyes zárójelezést. Ekkor vagy w = (w 1 ), vagy w = w 1 w 2, ahol w 1, w 2 helyes zárójelezések. (Attól függően, hogy van-e w-nek valódi prefixe, mely ugyanannyi bal- és jobbzárójelet tartalmaz.) Indukció alapján w 1 és w 2 levezethető. Az első esetben az S (S) (w 1 ), a másodikban az S SS w 1 S w 1 w 2 levezetés w-nek egy jó levezetését adja. S ε S S tsx t ty t Y t X t Y t t tx t X t t Y t t t T t, t T t, t T Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 5 / 21 Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 6 / 21 3. feladat Készítsünk olyan 3. típusú G nyelvtant, melyre L(G) = (b(ab a) ab) aa! S ε A aa A B ab aba B bc C ε B D D ab a abd ad aba aa Normálformák Típus Normálforma szabályai Lépések 0. S ε, ez esetben S nem p q, q (T N) + 1. (Kuroda) 2. (Greibach) S ε, ez esetben S nem A a A BC AB AC BA CA S ε, ez esetben S nem A aq, Q N 0. típusú ε-mentesítés álterminálisok hosszredukció AB CD, A C, B D alakúak eliminálása redukció rendezetté tétel kvázi Greibach forma Greibach NF-ra hozás Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 7 / 21 Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 8 / 21

Normálformák (folyt.) 2. (Chomsky) S ε, ez esetben S nem A a A BC 3. A ε A ab redukció ε-mentesítés láncmentesítés álterminálisok hosszredukció láncmentesítés hosszredukció A a alakú szabályok eliminálása 0. típusú nyelvtanok ε-mentesítés G = {a, b}, {S, X, Y }, P, S S axsby ab ε Xb ε Xa aax Végezzük el a 0. típusú ε-mentesítést! Megoldás: S ε S S axsby ab as a Sa a axb a Xba a bs b Sb b bxb b Xbb b XS X SX X XXb X XbX X YS Y SY Y YXb Y XbY Y SS S SXb S XbS S Xa aax Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 9 / 21 Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 10 / 21 Kuroda normálforma (1. típusú nyelvtan) A normálformára alakítás lépései 1. lépés: Álterminális nyelvtani jelek bevezetése: Minden terminálist egy álterminális nyelvtani jellel helyettesítünk, és az álterminálist terminálisra cserélő szabályokat adunk a rendszerhez. Példa: ABc DEFgH szabályból ABQ c DEFQ g H lesz és a Q c c valamint a Q g g szabályt hozzáadjuk a szabályrendszerhez. 2. lépés: Hosszredukció: új, egyedi nyelvtani jelekkel minden hosszú szabályt vele ekvivalens rövid szabályokkal helyettesítünk. Példa: ABQ c DEFQ g H szabály helyett lesz (Z 1, Z 2, Z 3 új, egyedi jel): AB DZ 1 Q c Z 1 EZ 2 Z 2 FZ 3 Z 3 Q g H 3.lépés: Az AB CD, A C, B D alakú szabályok eliminálása: Minden szabályt 3, már helyes újjal helyettesítünk. Példa: AB DZ 1 szabály helyett lesz (W új, egyedi nyelvtani jel) AB AW AW DW DW DZ 1 Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 11 / 21 0. lépés: Redukció Zsákutcamentesítés G = {a, b, c}, {S, A, B, C, D, E}, P, S S AB CD C Cccc ε A aaa C D DD DS B bbb C E as bs Zsákutcamentesítés: Azon nyelvtani jelek elhagyása, melyekből nem vezethető le terminális szó. Meghatározzuk azon nyelvtani jelek H N halmazát, melyekből levezethető valamilyen terminális szó. A H i halmaz olyan nyelvtani jelekből áll, melyekből közvetlenül levezethető (H i 1 T ) -beli mondatforma, azaz legfeljebb i levezetési fázisban levezethető belőle terminális szó. A H 1, H 2,... halmazsorozat a tartalmazásra nézve monoton növő, felülről korlátos halmazsorozat, így mindig stabilizálódik. Ha H i+1 = H i, akkor legyen H = H i. A H i halmaz ismeretében meghatározhatjuk H i+1 -t: H i+1 = H i {X N q : X q P, q (H i T ) }. Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 12 / 21

0. lépés: Redukció Zsákutcamentesítés (folyt.) G = {a, b, c}, {S, A, B, C, D, E}, P, S S AB CD C Cccc ε A aaa C D DD DS B bbb C E as bs H 1 = {C}, H 2 = {C, A, B}, H 3 = {C, A, B, S}, H 4 = {C, A, B, S, E}, H 5 = H 4, H = H 4 = {C, A, B, S, E}. A D nyelvtani jel zsákutcába vezet. Elhagyunk minden olyan szabályt, ami tartalmazza a D-t. (Általában, minden olyat ami tartalmaz N \ H-belit.) Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 13 / 21 0. lépés: Redukció Összefüggővé alakítás G = {a, b, c}, {S, A, B, C, E}, P, S S AB C Cccc ε A aaa C E as bs B bbb C Összefüggővé alakítás: Azon nyelvtani jelek elhagyása, melyek nem szerepelhetnek az S kezdőszimbólumból levezetett mondatformákban. Megkonstruáljuk a levezetések során előforduló nyelvtani jelek K N halmazát. K 0 = {S}. A K i halmaz álljon azon nyelvtani jelekből, melyek a legfeljebb i lépéses levezetések során bejöhetnek. A K 0, K 1,... halmazsorozat a tartalmazásra nézve monoton növő, felülről korlátos halmazsorozat, így mindig stabilizálódik. K i+1 = K i {X N Y q P : X q}, azaz K i+1 azon nyelvtani jelekből áll, melyek szerepelnek valamely K i -beli nyelvtani jelre vonatkozó szabály jobboldalán. Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 14 / 21 0. lépés: Redukció Összefüggővé alakítás (folyt.) G = {a, b, c}, {S, A, B, C, E}, P, S S AB C Cccc ε A aaa C E as bs B bbb C K 0 = {S}, K 1 = {S, A, B}, K 2 = {S, A, B, C}, K 3 = K 2, K = K 2 = {S, A, B, C}. Az E nyelvtani jel nem jöhet be S-ből való levezetések során. Elhagyunk minden olyan szabályt, mely tartalmazza az E nyelvtani jelet. (Általában N \ K -belit.) Redukált nyelvtan A zsákutcamentes és összefüggő 2-es típusú nyelvtanokat redukáltnak nevezzük. Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 15 / 21 1. lépés: ε-mentesítés G = {a, b, c}, {S, A, B, C}, P, S S AB A aaa C B bbb C C Cccc ε ε-mentesítés: Ismét konstruálunk egy H {S, A, B, C} segédhalmazt, melynek pontosan azok a nyelvtani jelek lesznek az elemei, melyekből (egy vagy több lépésben) levezethető ε. Ehhez ismét rekurzívan definiálunk H i halmazokat. A H i halmaz a H i 1 halmaz bővítése azon nyelvtani jelekkel, amelyekből közvetlenül levezethető Hi 1 -beli mondatforma. A kiindulási halmaz H 1, azon nyelvtani jelek halmaza, melyekből közvetlenül levezethető ε. Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 16 / 21

1. lépés: ε-mentesítés (folyt.) H 1 = {C}, H 3 = {A, B, C} {S}, H 2 = {C} {A, B}, H 4 = H 3 H = {S, A, B, C}. Képezzük az összes olyan szabályt, melynek jobboldala valamely eredeti szabály jobboldalán szereplő mondatformából tetszőlegesen kiválasztott H-beli nemterminálisok elhagyásával kapható (beleértve azt az esetet is, ha nem hagyunk el semmit), a baloldal pedig az eredet baloldal. Az ε-szabályokat elhagyjuk. S AB A B A aaa aa C B bbb bb C Ha S H (mint az adott példában) akkor hozzá kell adni még a következő szabályokat: S S ε (ekkor S lesz az új kezdőszimbólum) Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 17 / 21 2. lépés: Láncmentesítés Láncmentesítés: S S ε S AB A B A aaa aa C B bbb bb C Meghatározzuk minden nyelvtani jelhez (az adott nyelvtani jelet magát is beleértve) azon nyelvtani jelek halmazát, melyek mint 1 hosszúságú mondatforma (közvetlenül, vagy közvetetten) levezethetők belőle. Ezeket a halmazokat is rekurzívan határozhatjuk meg. Például: H 0 (S) = {S}, H 1 (S) = H 0 (S) {A, B} = {S, A, B}, H 2 (S) = H 1 (S) {C} = {S, A, B, C}, H 3 (S) = H 2 (S) H(S) = H 2 (S). Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 18 / 21 2. lépés: Láncmentesítés (folyt.) S S ε S AB A B A aaa aa C B bbb bb C H(S ) = {S, S, A, B, C}, H(S) = {S, A, B, C}, H(A) = {A, C}, H(B) = {B, C}, H(C) = {C}. Minden Y H(X) nyelvtani jelhez vesszük azon szabályokat, amelyeknek baloldalán X, jobboldalán pedig egy Y -ra vonatkozó eredeti szabály jobboldala áll, kivéve ha ez a jobboldali mondatforma egyetlen nyelvtani jelből áll. (Azaz, a láncszabályokat elhagyjuk.) G = {a, b, c}, {S, S, A, B, C}, P, S S ε AB aaa aa bbb bb Cccc ccc S AB aaa aa bbb bb Cccc ccc A aaa aa Cccc ccc B bbb bb Cccc ccc Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 19 / 21 3. lépés: Álterminálisok bevezetése, 4. lépés: Hosszredukció Álterminálisok bevezetése: A terminálisokat egy-egy terminális szimbólumonként egyedi, új nyelvtani jelre cseréljük (kivéve ha a jobboldal már egyetlen terminális szimbólumból áll), és az ezeket a megfelelő terminálisokra cserélő szabályokat hozzáadjuk. S ε AB Q a AQ a Q a Q a Q b BQ b Q b Q b CQ c Q c Q c Q c Q c Q c S AB Q a AQ a Q a Q a Q b BQ b Q b Q b CQ c Q c Q c Q c Q c Q c A Q a AQ a Q a Q a CQ c Q c Q c Q c Q c Q c B Q b BQ b Q b Q b CQ c Q c Q c Q c Q c Q c C CQ c Q c Q c Q c Q c Q c Q a a Q b b Q c c Hosszredukció: Mint a Kuroda NF-nél. Például: C CQ c Q c Q c szabály helyett: C CZ 1 Z 1 Q c Z 2 Z 2 Q c Q c Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 20 / 21

3. típusú nyelvtanok normálformája A aaa S b 1. lépés: Láncmentesítés: A aaa ε ba b 2. lépés: Hosszredukció: A az 1 ε ba b Z 1 aa 3. lépés: A nyelvtani jelből terminális alakú szabályok átalakítása: A az 1 ε ba bf 1 Z 1 aa F 1 ε Formális nyelvek (6. gyakorlat) Nyelvtani transzformációk 2008/09 I. félév 21 / 21