Download (1405Kb)
Download (1405Kb)
Download (1405Kb)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
104 KAPITEL 5. DIE ς-SEMANTIKEN<br />
gilt. Die einfachere Definitionsform vermittels der Konstruktornormalform ist für jede ς-Reduktionssemantik<br />
möglich, deren kanonische Ordnung des Rechenbereichs flach, also gleich 〈T⊥ C , ✂〉<br />
ist.<br />
Aus dem neugewonnenen Blickwinkel der ς-Semantiken sehen wir somit, daß der Unterschied zwischen<br />
Reduktionssemantiken der cbv- und der cbn-Semantik nur scheinbar auf der Position im<br />
Term (inner- oder outermost) der reduzierten Redexe beruht. Stattdessen liegt der wesentliche Unterschied<br />
in den verschiedenen Arten von Redexen (cbv- oder cbn-Redexe), die reduziert werden.<br />
Die ς-Semantiken sind, auch wenn sie abgesehen von der cbv- und der cbn-Semantik und vielleicht<br />
noch den zwei anfangs erwähnten Mischformen nie in realen Programmiersprachen eingesetzt werden,<br />
in einem weiteren Punkt nützlich: Die cbv-Auswertung erweist sich in der Praxis als effizienter<br />
implementierbar als die cbn-Auswertung. Insbesondere aufgrund der Möglichkeiten der unendlichen<br />
Datenstrukturen besitzen jedoch viele moderne funktionale Programmiersprachen wie Miranda und<br />
Haskell cbn-Semantik. Das Effizienzproblem wird dann mit einer Striktheitsanalyse angegangen, die<br />
beispielsweise mit der schon erwähnten abstrakten Interpretation durchgeführt werden kann. Diese<br />
bestimmt — soweit möglich — welche Operationen an welchen Argumentstellen strikt sind. An diesen<br />
Stellen kann dann der effizientere cbv-Auswertungsmechanismus eingesetzt werden. Insgesamt<br />
entsteht so eine Mischung von cbv- und cbn-Auswertung.<br />
Die ς-Semantiken bieten hierfür eine theoretische Grundlage. Man führt die Striktheitsanalyse im<br />
Rahmen einer cbn-Semantik durch. Aus der Definition der ς-Fixpunktsemantik ist leicht ersichtlich,<br />
daß die erzwungene Striktheit einer Argumentstelle eines Operationssymbols von nicht-strikt zu<br />
strikt geändert werden kann, wenn die Operation an dieser Argumentstelle strikt ist, ohne dadurch<br />
die Semantik (den Datentyp) des Programms zu verändern. Aus der Striktheitsanalyse gewinnt man<br />
somit eine möglichst strikte“ erzwungene Striktheit ς mit D<br />
” fix<br />
P,ς = Dfix P,cbn . Berechnungen können<br />
nun mit einer ς-Reduktionssemantik erfolgen.<br />
Die Korrektheit eines derart optimierenden Interpreters oder Compilers ließe sich also durch den<br />
Beweis der Übereinstimmung mit einer ς-Reduktionssemantik nachweisen.<br />
5.3.3 Die Wohldefiniertheit<br />
Wir beweisen nun noch die Wohldefiniertheit der allgemeinen ς-Reduktionssemantik und der po-ς-<br />
Reduktionssemantik. Die hierfür bewiesenen zentralen Lemmata 5.23 und 5.24 sind auch für den<br />
Beweis der Übereinstimmung der ς-Fixpunkt- und der ς-Reduktionssemantiken in 5.5 von großer<br />
Bedeutung.<br />
Zuerst zeigen wir eine Hilfsaussage für das darauf folgende Lemma.<br />
Lemma 5.22 Vertauschung von semantischer Approximation und Teiltermersetzung<br />
Seien t, t ′ ∈ TΣ Grundterme und u ∈ Occ(t). Dann ist<br />
Beweis:<br />
[[t[u ← t ′ ]]] alg<br />
⊥ς<br />
u = ε: [[t[ε ← t ′ ]]] alg<br />
⊥ς = [[t′ ]] alg<br />
= [[t]]alg<br />
⊥ς ⊥ς [ε ← [[t′ ]] alg<br />
⊥ς ].<br />
u = i.u ′ : (i ∈ IN+)<br />
= [[t]]alg<br />
⊥ς [u ← [[t′ ]] alg<br />
⊥ς ].