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 $S\ensuremath{\rightarrow} SA\;\vert\;A$ , $A\ensuremath{\rightarrow} aA\;\vert\;b$ 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 $S\ensuremath{\rightarrow} aP$ , $P\ensuremath{\rightarrow} Qb$ , $Q\ensuremath{\rightarrow} QS\;\vert\;\epsilon$ 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 $S\ensuremath{\rightarrow} Ab\;\vert\;Ac$ , $A\ensuremath{\rightarrow} AB\;\vert\;a$ , $B\ensuremath{\rightarrow} a$ 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: $S\ensuremath{\rightarrow} aAc\;\vert\;b$ , $A\ensuremath{\rightarrow} aSc\;\vert\;b$ . 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 $S\ensuremath{\rightarrow} SaSb\;\vert\;\epsilon$ 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) $S\ensuremath{\rightarrow} SaSb\;\vert\;c$
(b) $S\ensuremath{\rightarrow} aSb\;\vert\;ab$
(c) $S\ensuremath{\rightarrow} aSa\;\vert\;bSb\;\vert\;a\;\vert\;b$