next up previous
Next: Über dieses Dokument

M. Sperber, H. Klaeren Wintersemester 1998/99


Compilerbau I


Blatt 10

Abgabe: 19.1.1999

  1. [5 Punkte] Verändern Sie den Interpreter für CPS-Programme aus der Vorlesung dahingehend, daß er statt einer Continuation-Umgebung nur die momentane Continuation mitführt. Warum ist dieser Schritt möglich, ohne die Korrektheit des Interpreters zu verletzen?
  2. [10 Punkte] Verändern Sie den Interpreter für CPS-Programme dahingehend, daß er durchgehend Register verwendet, wie schon beim Interpreter für Lambda-Terme.
  3. [15 Punkte] Geben Sie eine Semantik für den Lambda-Kalkül an, welche Primitiva für das Erzeugen und Setzen von Referenzen bereitstellt.

    Hinweis: Es reicht nicht, tex2html_wrap_inline18 zu erweitern. (Warum?)

    Anleitung: Schreiben Sie zunächst eine Semantik in CPS. Erweitern Sie tex2html_wrap_inline20 um Adressen und ändern die Semantik so, daß neben der Continuation auch ein Speicher, eine Abbildung von Adressen auf Werten, verwaltet wird.

    Wie läßt sich an der Semantik ablesen, daß die Implementierung von Referenzen durch Seiteneffekte korrekt ist?





Michael Sperber [Mr. Preprocessor]
Tue Jan 12 08:51:28 MET 1999