Semantik von Programmiersprachen I

Werbung
Naturwissenschaftlich-Technische Fakultät
Compilerbau und Softwareanalyse
Kurt Sieber
Philipp Reh
Semantik von Programmiersprachen I
Sommersemester 2014
Übungsblatt 4
Aufgabe 1
Zeigen Sie, dass die Übergangsschrittrelation ‘→’ eine partielle Funktion auf
der Menge aller PCTs ist, d.h. dass zu jedem PCT t höchstens ein PCT t0
mit t → t0 existiert. Schließen Sie daraus, dass für jeden Ausdruck e genau
eine Berechnung existiert.
Aufgabe 2
Zeigen Sie: Wenn t in der Berechnung eines abgeschlossenen wohlgetypten
Ausdrucks auftritt und ein Knoten von t mit e oder e ⇓ r markiert ist, dann
ist e abgeschlossen und wohlgetypt.
Aufgabe 3
Führen Sie den Beweis der Typsicherheit zu Ende, indem Sie die restlichen
Fälle betrachten.
Aufgabe 4
In der Vorlesung wurden partielle Berechnungsbäume (PCTs) benutzt, um
die einzelnen Übergangsschritte einer Berechnung zu definieren. Diese PCTs
enthalten viele überflüssige Informationen, denn für den weiteren Verlauf
der Berechnung spielen die Kinder der fertig abgearbeiteten Knoten keine
Rolle mehr. Deshalb kann man die PCTs durch einen (veränderlichen) stack
ersetzen, der stets nur die Markierungen der aktiven Knoten und ihrer Kinder
enthält. Geben Sie eine präzise mathematische Definition für diese Idee an,
indem Sie die Übergangsschritte zwischen stack-Inhalten festlegen.
Aufgabe 5
Sei Stuck die Menge aller abgeschlossenen Ausdrücke, deren Berechnung
stecken bleibt. Zeigen Sie: Wenn die Menge Stuck entscheidbar wäre, dann
wäre auch das Halteproblem für L3 entscheidbar.
Herunterladen