Übersetzerbau

WS 98/99
Heckmann
Pape

1. Übungsblatt

 

Aufgabe 1 (3 Punkte)

Übersetzen Sie die folgenden Ausdrücke mit Hilfe der in der Vorlesung behandelten Übersetzungsfunktionen in Befehle der P-Maschine.

Dabei seien a, b, c Integervariablen und die Adreßumgebung p gegeben mit p(a) = 5, p(b) = 6 und p(c) = 7.

  1. (a + (a + (b + c)))
  2. (((a + a) + b) + c)

Vergleichen Sie den für die Ausdrücke in a) und b) erzeugten Code hinsichtlich des jeweils benötigten Datenspeicherplatzes.

 

Aufgabe 2 (5 Punkte)

Definieren Sie eine Funktion stackneed, die für einen Ausdruck die maximale Anzahl von Datenspeicherzellen bestimmt, die zur Ausführung des für ihn erzeugten P-Codes nötig sind. Erweitern Sie stackneed auf die bisher bekannten Anweisungen. Dabei seien die in den Ausdrücken und Anweisungen auftretenden Variablen von einfachem Typ.

 

Aufgabe 3 (4 Punkte)

Übersetzen Sie die folgende Anweisungsfolge in der Adreßumgebung p(a) = 5 und p(b) = 6 (a und b Integervariablen).

a := 1;  b := 2;
while (a <= 10) do
  a := a + 2;
  b := a * b;
od