Formális nyelvek gyakorlat (10-11)
2005. november 24. és december 1., csütörtök
1. Egy CF nyelvet az
nyelvtan definiál.
Készíts erre a nyelvre (erős) elemzőt minél kisebb -val!
Ezután elemezd az szót!
2. Nézzük az
,
nyelvtant.
(a) Igaz-e, hogy ez a nyelvtan erős nyelvtan?
(b) Készítsünk a nyelvtanhoz gyenge elemzőt!
(c) Mutassuk meg, hogy ez nem gyenge nyelvtan!
3. Egy CF nyelvet az
nyelvtan definiál.
(a) Készíts erre a nyelvre gyenge elemzőt minél kisebb -val!
(b) Ezután elemezd az szót!
(c) Készíts az (a)-ban adott gyenge elemzőből erőset,
aztán nézd meg, hogy hogyan viselkedik a gyenge és az erős az
szón!
Aki gondolkodni is akar, nem csak számolni:
4. Gondoljuk meg, hogy
(a) mit jelent az, hogy egy nyelvtan tulajdonságú?
(b) miért nem elemezhető egy balrekurzív nyelvtan?
(c) miért biztos az, hogy egy nemegyértelmű nyelvtan nem
elemezhető?
(d) van-e olyan nyelv és olyan szám, hogy -re csak gyenge
elemző készíthető, erős nem?
Gyakorolni
5. Egyszerű
a) Készíts elemzőtáblát az alábbi egyszerű szintaxisvezérelt
fordítási séma első nyelvtanához,
b) elemezd segítségével az jelsorozatot,
c) és állítsd elő a mondat fordítását!
,
,
6. Bonyolultabb
Készíts elemzőt az
nyelvtan
által generált nyelvre minél kisebb -val! A lokális FOLLOW függvények
alapján történő felhasítással biztosítsd a legrészletesbb hibajelzést!
Vizsgáld meg, hogy az elemző elkészítésére használt nyelvtan erős
nyelvtan-e (azzal a -val, amivel gyenge)!
Ha erős, akkor hasonlítsd össze az erős és a gyenge elemzőt és keress
olyan jelsorozatot amin a két elemző máshogy működik!