Formális nyelvek gyakorlat (14)

2001., május 15.

Ezt előadáson végigszámoltuk.
1. Készítsünk precedencia elemzőt az $S\ensuremath{\rightarrow}aSc\;\vert bSd\;\vert\;ac\;\vert\;bd$ nyelvtanhoz és elemezzük az $abdc$ szót!

2. (a) Mutassuk meg, hogy az $E\ensuremath{\rightarrow}E+T\;\vert\;T$, $T\ensuremath{\rightarrow}T*F\;\vert\;F$, $F\ensuremath{\rightarrow}(E)\;\vert\;a$ nyelvtan nem erős precedencia nyelvtan és egyúttal készítsünk hozzá gyenge precedencia elemzőt!
(b) Elemezzük a gyenge elemzővel az $a+a*a$ szót!

Ennek az a) részét előadáson végigszámoltuk.
3. Van-e precedencia elemző az alábbi nyelvtanokhoz? Ha van, akkor azt is nézzük meg, hogy erős-e avagy gyenge.
(a) $S\ensuremath{\rightarrow}SA\;\vert A$, $A\ensuremath{\rightarrow}(S)\;\vert\;()$
(b) $S\ensuremath{\rightarrow}$ if $E$ then $S$ else $S\;\vert\;a$, $E\ensuremath{\rightarrow}E$ or $b\;\vert\;b$
(c) $S\ensuremath{\rightarrow}A;A$, $A\ensuremath{\rightarrow}[S]\;\vert\;[i]\;\vert\;i$

Megoldás

Két éve vizsgafeladat volt:

4. Az alábbi nyelvtan reguláris kifejezéseket generál.

\begin{eqnarray*}
A& \ensuremath{\rightarrow}& A+B\;\vert\;B\\
B&\ensuremath{\r...
...w}&C^*\;\vert\;D \\
D & \ensuremath{\rightarrow}&(A)\;\vert\;a
\end{eqnarray*}




a)Készítsen precedencia elemzőt a nyelvtanhoz!
b) Elemezze segítségével az $a(a+a^*)^*$ mondatot!