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.
7.4. BEMERKUNGEN ZUR SEQUENTIALITÄT 167<br />
Beispiel 7.8 Übersetzung eines sequentiellen Programms mit Pattern<br />
f(x,A,C) → A<br />
f(x,A,B) → B<br />
f(A,B,x) → C<br />
2 ist Sequentialitätsindex von f DP,ς für (⊥, ⊥, ⊥) bezüglich ε.<br />
3 ist Sequentialitätsindex von f DP,ς für (⊥,A, ⊥) bezüglich ε.<br />
Semantikerhaltende Übersetzung:<br />
f(x,y,z) → condB(y,condA(x,C,f(x,y,z)),<br />
condA(y,<br />
condB(z,B,<br />
condC(z,A,f(x,y,z))<br />
),f(x,y,z)))<br />
Von hier aus ist es nur ein kleiner Schritt zu effizienten ς-Reduktionsstrategien für unsere Programme.<br />
Wären die Sequentialitätsindexe der Operationen bekannt, so würde eine effiziente ς-<br />
Reduktionsstrategie nur an den outermost ς-Redexstellen reduzieren, die auch Sequentialitätsindexe<br />
wären, da nur diese Reduktionen Informationsgewinn versprechen würden. Mit Hilfe der Sequentialitätsindexe<br />
ließen sich also genau die in 5.5.4 angesprochenen gaining ς-Redexstellen, d. h. Gain(t)<br />
und NGain(t) für alle Terme t ∈ TΣ, definieren. Die Sequentialität würde den Informationsgewinn<br />
bei Reduktion von gaining ς-Redexstellen analog zu Lemma 5.23, S. 105, sicherstellen, und mit<br />
einer eventually gaining Hilfskonstruktion ließe sich dann die Vollständigkeit der eventually gaining<br />
ς-Reduktionssemantik beweisen.<br />
Diese Methode wäre durchaus nicht auf sequentielle Operationen beschränkt. Nicht sequentielle<br />
besitzen zwar nicht für alle Argumente Sequentialitätsindexe, aber es ließe sich immerhin eine<br />
Art Sequentialitätsmenge von Indexen definieren, d.h. eine minimale Menge von ” ⊥-Stellen“, die<br />
allerhöchstens bei Reduktionen betrachtet werden müßten.<br />
Insbesondere in Anbetracht der Unentscheidbarkeit der Sequentialität der Programme mit Pattern<br />
bleibt freilich noch das Problem der Bestimmung der Sequenitalitätsindexe bzw. dieser Sequentialitätsmengen.<br />
Durch eine Analyse der Pattern eines Operationssymbols lassen sich jedoch schon<br />
viele Sequentialitätsindexe der Operation bestimmen. In Beispiel 7.8 ergeben sich die benötigten<br />
Sequentialitätsindexe 2 und 3 direkt aus den Pattern. Bei dieser Analyse der Pattern ließe sich<br />
auch die erzwungene Striktheit ς sinnvoll einbeziehen. Die Programme der Beispiele 7.3 und 7.4<br />
für das parallele And und Berrys Beispiel spezifizieren durchaus sequentielle Abbildungen, wenn<br />
and und f an allen Argumentstellen erzwungen strikt sind. Mit Approximationsverfahren wie der<br />
abstrakten Interpretation (siehe S. 59) ließen sich weitere Sequentialitätsindexe bestimmen oder<br />
Sequentialitätsmengen eingrenzen.<br />
Andererseits bestände auch die Möglichkeit, die Menge der zulässigen Pattern einzuschränken, und<br />
auf diese Weise die Sequentialität und die Berechenbarkeit der Sequentialitätsindexe zu erzwingen.<br />
Auch in der Literatur werden häufig Sequentialitätseigenschaften in Zusammenhang mit effizienten<br />
operationellen Semantiken betrachtet.<br />
In [Huet&Lévy79] wird bewiesen, daß bei orthogonalen Termersetzungssystemen jeder Term eine<br />
Stelle besitzt, an der reduziert werden muß (needed), damit die Normalform des Terms erreicht<br />
✷