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.