|
Sziasztok!
Volt kis zh, eredmények itt .
A mai óra a anyaga az LR(k) elemzés volt.
Először az LR(1) elemzést meséltem el és megcsináltunk egy példát
is ehhez, az elsőt.
Aztán megnéztük a második példán, hogy mennyivel egyszerűbb az LR(0)
elemzés.
A többi példa gyakorolni van, megoldások lentebb vannak.
Említettem még, hogy azért ez a két LR (LR(0) és LR(1))
érdekes főleg, mert
az LR(1) elemezhető nyelvek osztálya megegyezik a determinisztikus CF
nyelvek osztályával és ennél többet nem is remélhetünk, azaz
ami LR(k) elemezhető nyelv
valami k-val az LR(1) is. Persze lehet, hogy nem ugyanazzal a
nyelvtannal, de van olyan nyelvtan, amivel.
Otthoni teendők: Oldjatok meg mindent, amit az órán nem. :-)
1.
(a) Készíts az
,
nyelvtanhoz LR(1) elemzőt!
(b) Elemezd az előbb kapott LR(1) elemzővel a bab szót!
(c) Mutasd meg, hogy a nyelvtan nem
LR(0) elemezhető!
Megoldás nagyon részletesen
2.
(a)
Készíts LR(0) elemzőt az
,
,
nyelvtanhoz!
(b) Elemezd az előbb kapott elemzővel az aabb szót!
Megoldás nagyon részletesen
3. (a) Csinálj LR(1) elemzőt az
,
,
nyelvtanhoz!
(b) Elemezd az előbb kapott elemzővel az aaab szót!
(c) Az (a) pontban kapott elemzőt megszemlélve döntsd el, hogy a
nyelvtan LR(0) nyelvtan-e (indoklás!!).
(d) Elemezz egy olyan szót is, ami nem generálható a nyelvtannal, például:
acb .
Megoldás
Gyakorolni:
4. LR(0) elemző kell:
,
. Ha megvan az
elemző, akkor elemezzük vele az aabcc szót!
Megoldás
5. Adjunk LR(k) elemzőt minél kisebb k -val az
nyelvtanhoz és elemezzük az ababab szót!
Megoldás
6. Az alább következő három nyelvtanról döntsük el, hogy LR(k) nyelvtanok-e
és ha úgy találjuk, hogy azok, akkor adjuk meg azt a legkisebb k -t is,
amivel LR(k) elemezhetőek.
A nyelvtanok:
(a)
(b)
(c)
|