Prof. Dr. R. Laue
WS0203
Informatik III
Übungsblatt 10
Abgabe: 16.1.03 vor der Vorlesung
URL:
/axel/informatik3_ws0203_blatt10.html
Dieses Übungsblatt ist in Zweiergruppen
zu bearbeiten.
Aufgabe 25 attributierte Grammatik (6 Punkte)
Die Ausdrücke, die folgende
Grammatik akzeptiert, dürfen, wie in C, Zuweisungen innerhalb
von Zuweisungen enthalten.
S -->E
E --> E=E
E --> E*E
E --> (E)
E --> identifier
E --> E[ziffer]
E --> ziffer
Man konstruiere eine attributierte Grammatik,
die entscheiden kann, ob ein Ausdruck (=E) ein "l-value" ist.
Man benutze dazu ein vererbtes Attribut "seite". Unter l-value versteht man einen Ausdruck, der als linke
Seite einer Zuweisung auftauchen darf. D.h. es gibt einen zugehörigen
Speicherplatz.
Bitte mit vererbtem Attribut!!
Aufgabe 26 EQN (3+3 Punkte)
Die Aufgabe 24 beschreibt einen Ausschnitt aus der EQN Sprache. Dabei sind
noch Mehrdeutigkeiten (d.h. verschiedene mögliche Syntaybäume)
möglich.
a) man gebe ein Beispiel für eine Mehrdeutigkeit (3 Punkte) Zusatzpunkte
für weitere wirklich verschiedene.
b) man modifiziere die Grammatik um diese zu beseitigen. Gebe die Grammatik
mit Attributen in einer Form an, dass ein Keller zur Verarbeitung ausreicht.
Aufgabe 27 Taschenrechner (2+2+2 Programmier Punkte)
Entwerfen Sie eine Methode, die es erlaubt lokale Variablen zu verwenden.
Wie sollte die Implementierung dafür geändert werden. Wie muss
die Grammatik geändert werden. Zeigen Sie an einem Beispiel die Funktionsweise.
Schriftlich abzugeben, keine konkrete Implementierung.