10. gyakorlat

1. feladat
A Cocke-Younger-Kasami módszer segítségével határozzuk meg az aabbbc szó összes jobboldali levezetését, ha a nyelvtan a következő:
S -> AB
A -> aAb | ab
B -> bBc | bc
2. feladat
Legyen a nyelvtanunk a következő:
S -> bDPe
D -> dvD | dv
P -> uvP | uv
Elemezzük az Earley-algoritmussal a bdvuvuve szót!
3. feladat
Adott az alábbi nyelvtan:
S -> aSbS | aS | epszilon
Elemezzük az Earley-algoritmussal
  1. az aab, illetve
  2. az abb szót!
4. feladat
A CYK elemzéssel elemezzük az
S -> aSa | bSb | aa | bb
nyelvtanban az abbbba és az abbba szót!
5. feladat
A CYK algoritmussal elemezzük az
E -> E+E | E*E | a
nyelvtanban
  1. az a+a*a+a, illetve
  2. az a++a szót!
Döntsük el, hogy generálhatók-e nyelvtannal! Egyértelműen generálhatók? Adjuk meg a levezetési fákat is!
6. feladat
Earley-algoritmussal elemezzük az a+a*a szót az
E -> E+E | E*E | a
nyelvtanban! Gondoljuk végig, hogy hol látszik az elemzésben az, hogy nem egyértelmű a nyelvtan!
7. feladat
Tekintsük az alábbi nyelvtant:
S -> AB
A -> aAb | ab
B -> bBc | epszilon
  1. LL(1) elemezhető-e a nyelvtan?
  2. Készítsünk LL(2) elemzőt, és elemezzük az abbc mondatot!
  3. LL(1) elemezhető-e a nyelv? Ha igen, hogyan?
  4. Készítsük el a gyenge LL(k) nyelvtanokra jellemző táblácskákat (a nemterminálisok megkülönböztetésével)!
8. feladat
Tekintsük az alábbi nyelvtant:
S -> aSbS | bSaS | epszilon
k mely értékeire lesz LL(k) elemezhető?
9. feladat
Készíts LL(k) elemzőt a reguláris kifejezések nyelvére, természetesen k értékét minél jobban leszorítva! (Az alábbi nyelvtan balrekurzív, tehát először meg kell szüntetni a közvetlen balrekurziót.)
A -> A+B | B
B -> BC | C
C -> D* | D
D -> (A) | a | b
10. feladat
Ismeretes az egyszerűsített posztfix lengyel jelölésű aritmetika nyelve. Egy, a nyelvet generáló nyelvtan:
E -> EE+ | EE* | a
Készíts erre a nyelvre LL(k) elemzőt, legyen k minimális, és elemezz egy legalább 6 karakterből álló mondatot!
Varró Gergely gervarro@cs.bme.hu
Utolsó módosítás dátuma: 2004. április 23.