• Keine Ergebnisse gefunden

Bottomup-Syntaxanalyse (24 Punkte)

N/A
N/A
Protected

Academic year: 2022

Aktie "Bottomup-Syntaxanalyse (24 Punkte)"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Institut für Systemsoftware Übungen zu Übersetzerbau WS 2011/2012

Prof. Dr. H. Mössenböck, DI M. Löberbauer, DI L. Stadler Übung 7

Letzter Abgabetermin: Mittwoch, 11.01.2012, 1800 Uhr

Bottomup-Syntaxanalyse (24 Punkte)

1. Erstellen einer LALR(1)-Tabelle 14 Punkte

Gegeben ist eine Grammatik für einen Anweisungsblock:

Block = "{" [ Seq ] "}" . Seq = Stat { Stat } .

Stat = [ id "(" ( id | num ) ")" ] ";" .

Erzeugen Sie eine LALR(1)-Tabelle für diese Grammatik. Geben Sie die Zustände, die zugehörigen Item- Mengen, die Nachfolgesymbole und die durchzuführenden Aktionen an. Erstellen Sie auf Basis dieser Zustände eine Analysetabelle, die für jeden Zustand und jedes Eingabesymbol die durchzuführende Aktion angibt.

2. Tabellenverkleinerung 4 Punkte

Komprimieren Sie die in Aufgabe 1 entstandene Tabelle durch Zusammenfassen von shift- und reduce- Aktionen und geben Sie die neue Tabelle an.

3. Simulation einer LALR(1)-Analyse 6 Punkte

Gegeben ist die Grammatik für S und die zugehörige Analysetabelle:

(1) S = a A.

(2) S = B.

(3) S = S A b.

(4) S = . (5) A = c B d B.

(6) A = A a.

(7) B = e.

(8) B = B e.

Simulieren Sie die Analyse der Sätze:

• ε (der leere Satz)

• a c e d c

• e c e e d e e e a b

Geben Sie für jeden Simulationsschritt den Keller, die noch zu lesende Eingabe und die durchzuführende Aktion an. Beachten Sie, dass die Sätze möglicherweise nicht der Grammatik entsprechen und daher die Analyse mit einem Fehler abbrechen kann.

Abgabe

Die Abgabe der Übungen muss elektronisch erfolgen. Geben Sie folgende Dateien ab:

• Elektronisch in das Repository: PDF-Datei mit der Lösung.

• svn://ssw.jku.at/2011W/UB/k<MatrNr>/branches/UE7

a b c d e # S A B

0 s2 - r(4) - s4 r(4) s1 - s3

1 - - s6 - - acc - s5 -

2 - - s6 - - - - s7 -

3 - - r(2) - s8 r(2) - - -

4 r(7) r(7) r(7) r(7) r(7) r(7) - - -

5 s10 s9 - - - -

6 - - - - s4 - - - s11

7 s10 - r(1) - - r(1) - - -

8 r(8) r(8) r(8) r(8) r(8) r(8) - - -

9 - - r(3) - - r(3) - - -

10 r(6) r(6) r(6) - - r(6) - - -

11 - - - s12 s8 - - - -

12 - - - - s4 - - - s13

13 r(5) r(5) r(5) - s8 r(5) - - -

Verschoben auf Mittwoch, 18.01.2012

Referenzen

ÄHNLICHE DOKUMENTE

Führen Sie die Zustände, die dazugehörigen Item-Mengen, die Nachfolgesymbole und die durchzuführenden Aktionen an (siehe Beispiel in der Vorlesung).. Fertigen Sie auf der Basis

• beim ersten gefundenen Fehler wird Analyse abgebrochen. • Abbruch (in den UEs) nicht mit System.exit(0); ,

Erstellen  Sie  auf  Basis  dieser  Zustände  eine  Analysetabelle,  die  für  jeden  Zustand  und  jedes  Eingabesymbol die durchzuführende Aktion angibt. . Simulation

[r]

Erstellen Sie auf Basis dieser Zustände eine Analysetabelle, die für jeden Zustand und jedes Eingabesymbol die durchzuführende Aktion angibt..

findField() sucht nach einem Namen in einer Klasse, deren Struct in der Schnittstelle mitgegeben wird, wird der Name nicht gefunden muss der semantische

[r]

Zeigen Sie dabei sowohl alle Umformungen, die Sie an der Grammatik vornehmen, als auch die Berechnung der einzelnen Zustände, wie sie in der Vorlesung und Übung gezeigt