|
|
|
WS 98/99 |
|
|
Aufgabe 1 (2 + 2 + 1 Punkte)
Sei G die Grammatik mit Terminalen (, a und ), Nichtterminalen S', S und R, Startsymbol S' und Produktionen
S' -> S S -> (R | a R -> S R | )
- Stellen Sie das zu G gehörende rekursive Gleichungssystem für die Fi1-Mengen auf.
- Lösen Sie das System mit einem Einzelschrittverfahren in einer geeigneten Reihenfolge.
- Genügen die Fi1-Mengen, um zwischen den beiden Produktionen aus S und aus R auszuwählen? Wenn ja, geben Sie an, bei welchen Terminalen jeweils die erste und die zweite Produktion gewählt wird.
Aufgabe 2 (2 + 2 + 2 + 1 + 1 Punkte)
Sei G die Grammatik mit Terminalen (, -, a und ), Nichtterminalen S', S, R, F und A, Startsymbol S' und Produktionen
S' -> S S -> -S | (S) | FR R -> -S | epsilon F -> aA A -> (S) | epsilon
- Stellen Sie mit Hilfe des Algorithmus aus der Vorlesung fest, welche der Nichtterminale epsilon produzieren können.
- Berechnen Sie die Fi1-Mengen der Nichtterminale nach dem nicht-iterativen schnellen Verfahren aus der Vorlesung als Lösung eines reinen Vereinigungsproblems unter Benutzung der Information aus (a). Die benötigten starken Zusammenhangskomponenten dürfen durch genaues Hinsehen ermittelt werden.
- Berechnen Sie die Fo1-Mengen der Nichtterminale unter denselben Bedingungen wie bei (b).
- Berechnen Sie aus den Fi1- und Fo1-Mengen die Lookahead-Mengen der einzelnen Produktionen.
- Konstruieren Sie eine LL(1)-Parsertafel und prüfen Sie dabei, ob die Grammatik LL(1) ist.