• Keine Ergebnisse gefunden

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

Prof. Dr. H. Mössenböck Übung 7

Zuname Vorname Matr.-Nr.

Übungsgruppe Punkte korr.

1 (Löberbauer) Do 1015-1145

2 (Löberbauer) Do 1345-1515 Letzter Abgabetermin

3 (Würthinger) Do 1015-1145 Mittwoch, 12.01.2011, 1800 Uhr

Bottomup Bottomup Bottomup

Bottomup----Syntaxanalyse Syntaxanalyse Syntaxanalyse Syntaxanalyse 1 1

1 1. . . Erstellen . Erstellen Erstellen Erstellen einer LALR(1) einer LALR(1) einer LALR(1) einer LALR(1)----Tabelle Tabelle Tabelle Tabelle 14 14 Punkte 14 14 Punkte Punkte 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.

2.

2.

2. Tabellenverkleinerung Tabellenverkleinerung Tabellenverkleinerung Tabellenverkleinerung 4 Punkte 4 Punkte 4 Punkte 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 3 3

3. . . Simulation . Simulation Simulation Simulation einer LALR(1) einer LALR(1) einer LALR(1) einer LALR(1)----Analyse Analyse Analyse Analyse 6 6 6 6 Punkte Punkte Punkte 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.

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) - - -

(2)

Simulieren Sie die Analyse der Sätze:

• ε (der leere Satz)

• a c e d a

• 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 Abgabe Abgabe Abgabe

Geben Sie diese Übung nur auf Papier ab.

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

Tabellenverkleinerung und Simulation (12 Punkte) Gegeben ist folgende vereinfachte Grammatik für einen Anweisungsblock... Erstellung einer LALR(1)-Tabelle (12 Punkte) Gegeben

[r]

Erstellen Sie eine Grammatik für if-Anweisungen.. Die Grammatik soll eindeutig

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

[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

find() sucht nach einem Namen beginnend im aktuellen bis zum äußersten Gültigkeitsbereich, wird der Name nicht gefunden muss der semantische Fehler ​NOT_FOUND ausgegeben