08.10.2013 Aufrufe

Download (1405Kb)

Download (1405Kb)

Download (1405Kb)

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!