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.