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.

56 KAPITEL 4. DIE STANDARDSEMANTIKEN<br />

für alle G (n) ∈ C, f (n) ∈ F, condG, selG,i ∈ H und t1, t2, . . . ∈ T⊥ C .<br />

Die ω-vollständige Σ-Algebra=〈T ⊥ C<br />

, ✂, α〉 heißt cbv-Interpretation. Die Menge aller cbv-<br />

Interpretationen zu einer festen Programmsignatur Σ wird mit IntΣ,cbv bezeichnet.<br />

Mit der kanonischen Halbordnungsrelation ⊑ der Σ-Algebren ist 〈IntΣ,cbv, ⊑〉 die kanonische Halbordnung<br />

der cbv-Interpretationen. In der kleinsten cbv-Interpretation ⊥cbv := ⊥IntΣ,cbv ∈ IntΣ,cbv<br />

sind die Ergebniswerte aller Funktions- und Hilfsoperationen konstant ⊥. ✷<br />

In der Definition der cbv-Interpretationen fällt auf, daß alle Operationen — abgesehen von den<br />

Verzweigungsoperationen — als strikt definiert werden. Genau an diesem Punkt geht der cbv-<br />

Auswertungsmechanismus ein, und dies ist der entscheidende Unterschied zur cbn-Interpretation,<br />

die wir in 4.3.1 definieren werden. Da die Argumente einer Funktion vor der Ausführung der Funktion<br />

vollständig ausgerechnet werden, kann der gesamte Funktionsausdruck nicht terminieren, wenn<br />

die Berechnung nur eines Arguments nicht terminiert. Alle Funktionen sind somit strikt; nur die<br />

Verzweigungsoperationen stellen analog zu und aus den gleichen Gründen wie bei der Reduktionssemantik<br />

eine Ausnahme dar.<br />

Die Festlegung der Striktheit der Funktions- und Hilfsoperationen schon in der cbv-Interpretation<br />

ist eigentlich nicht nötig, da sie sich im folgenden auch automatisch ergibt. Wir haben sie nur<br />

der Symmetrie zu den Konstruktoroperationen halber und, da sich dies schon aus dem cbv-<br />

Auswertungsmechanismus unabhängig von einem Programm ergibt, hier festgelegt.<br />

Wir definieren eine cbv-Interpretation als geordnete, ω-vollständige Σ-Algebra und verwenden dabei<br />

die flache Halbordnung mit ⊥ als kleinstem Element. Die Verwendung ω-vollständiger Halbordnungen<br />

und darauf ω-stetiger Abbildungen dient letztendlich allein dem Zweck, in Definition 4.5<br />

einem Programm genau eine ausgezeichnete cbv-Interpretation als Datentyp zuordnen zu können.<br />

Trotzdem kann der Halbordnung eine intuitive Bedeutung zugemessen werden. Die Halbordnung<br />

〈T ⊥ C<br />

, ✂〉 ist eine Ordnung bezüglich des Informationsgehalts. ⊥ als kleinstes Element steht für das<br />

völlige Fehlen von Information. Alle anderen Elemente t ∈ TC sind größer als ⊥, da sie Information<br />

repräsentieren. Sie stellen alle verschiedene Information dar und sind daher nicht miteinander vergleichbar.<br />

Aufgrund dieser Nicht-Vergleichbarkeit stellt die geforderte ω-Stetigkeit der Operationen<br />

auch keine Einschränkung der Operationen über dieser Menge TC dar. Die Menge der durch Programme<br />

beschreibaren Operationen ist also hierdurch diesbezüglich nicht beschränkt. Andererseits<br />

ist die geforderte Monotonie der Operationen über T ⊥ C<br />

auch einleuchtend: Besitzt ein Element b<br />

mehr Information als ein Element a, so erwarten wir von einer Operation ϕ, daß ϕ(b) mehr Information<br />

besitzt als ϕ(a). In nicht-flachen Halbordnungen, wie wir sie ab 4.3.1 betrachten werden,<br />

wird die Abstufung bezüglich des Informationsgehalts noch deutlicher.<br />

Aus der ω-Vollständigkeit der cbv-Interpretationen folgt die ω-Vollständigkeit der Halbordnung<br />

〈IntΣ,cbv, ⊑〉 der cbv-Interpretationen. Wir wollen dies hier nicht beweisen, wie wir überhaupt in<br />

diesem Kapitel auf viele Beweise, insbesondere der Wohldefiniertheit der Fixpunktsemantiken, verzichten.<br />

Hier sollen hauptsächlich die Prinzipien und Konzepte vorgestellt werden. Alle Beweise<br />

werden in Kapitel 5 in einem abstrakteren, allgemeineren Rahmen durchgeführt.<br />

Wir haben hier zum ersten Mal folgende Konvention verwendet: Elemente des Rechenbereichs (T ⊥ C )<br />

werden mit unterstrichenen Kleinbuchstaben t bezeichnet. Die dadurch auch erfolgte Trennung<br />

) ist jedoch mit Vorsicht<br />

von syntaktischen Termen (TΣ) und semantischen Rechentermen (T⊥ C<br />

zu genießen. Die beiden Mengen besitzen gemeinsame Elemente (TΣ ∩ T⊥ C = TC), und in einer<br />

Reduktionssemantik ist der Übergang zwischen beiden praktisch fließend. Es erweist sich außerdem<br />

meistens als unpraktisch, für das gleiche Element t = t sowohl einen syntaktischen (t) als auch<br />

einen semantischen (t) Bezeichner zu verwenden.<br />

Nun definieren wir durch die Reduktionsregeln eines Programms dessen Datentyp. Die Operatio-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!