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!