08.10.2013 Aufrufe

Download (1405Kb)

Download (1405Kb)

Download (1405Kb)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.2. DIE CBV-SEMANTIK 55<br />

Fall 2: f = condG ∈ H und [[t1]] li P = [[t′ 1 ]]li P = ⊥.<br />

O. B. d.A. sei (t1 ↓P,li)(ε) = G.<br />

condG(t1, t2, t3)<br />

condG(t ′ 1 , t′ 2 , t′ 3 )<br />

∗<br />

−−→<br />

P,li<br />

∗<br />

P,li<br />

−−→<br />

condG(t1 ↓ P,li, t2, t3)<br />

condG(t ′ 1 ↓ P,li , t′ 2 , t′ 3 )<br />

Somit ist [[condG(t1, t2, t3)]] li P = [[t2]] li P = [[t′ 2 ]]li P = [[condG(t ′ 1 , t′ 2 , t′ 3 )]]li P .<br />

∗<br />

−−→<br />

P,li<br />

∗<br />

P,li<br />

−−→<br />

Die li-Reduktionsstrategie ist nicht normalisierend. Für die li ∗ -Reduktion gilt sogar, daß die mit<br />

einem Term t beginnende li ∗ -Reduktionsfolge nur genau dann terminiert, wenn von diesem Term<br />

überhaupt keine unendliche Reduktionsfolge ausgeht (Theorem 11 und 16 in [O’Do77]). Daher<br />

wurde sie in der Literatur oft als unvollständig bezeichnet ([Vui74], [Dow&Se76], [Ber&Lévy77]).<br />

Zum ersten Mal gibt [de Bakker76] im Rahmen des λ-Kalküls eine denotationelle Fixpunktsemantik<br />

für sie an.<br />

4.2.2 Die Fixpunktsemantik<br />

Wir geben nun eine denotationelle Definition der cbv-Semantik an. Dafür ordnen wir einem Programm<br />

einen Datentyp, eine Algebra als Semantik zu.<br />

Zuerst betrachten wir den Basisdatentyp, da dieser unabhängig von einem konkreten Programm ist,<br />

und wir diesen daher ein für allemal festlegen können. Die Datenelemente sollen aus Konstruktoren<br />

aufgebaut sein. Der Träger besteht somit aus den Konstruktortermen TC und dem Element ⊥ für die<br />

Undefiniertheit, ist also der schon bei der li-Reduktionssemantik verwendete Rechenbereich. Dies<br />

ist natürlich auch wesentlich, da der Datentyp ein Datentyp der li-Reduktionssemantik sein soll.<br />

Die Konstruktoren werden wie in einer Herbrandalgebra durch sich selbst interpretiert. Schließlich<br />

gehören noch die Operationen der Funktionssymbole, die zu deren Reduktionsregeln passen müssen,<br />

zum Basisdatentyp.<br />

Wir verzichten hier jedoch auf die formale Definition des Basisdatentyps und nähern uns stattdessen<br />

dem festzulegenden Datentyp des Programms auf etwas andere Weise. Wir definieren die<br />

Menge der Interpretationen: die Menge der Σ-Algebren, die, ohne daß wir Informationen über das<br />

konkrete Programm benutzen, potentielle Datentypen des Programms sind. Damit besteht eine Interpretation<br />

im Prinzip aus dem Basisdatentyp plus den Operationen der Funktionssymbole, wobei<br />

letztere beliebig sein können. Wie wir schon erwähnten, weichen wir bezüglich der Hilfsoperationen<br />

vom Konzept des Basisdatentyps etwas ab. Die Operationen der Hilfssymbole lassen sich aus den<br />

Reduktionsregeln auf genau die gleiche Art gewinnen wie die Operationen der Funktionssymbole,<br />

weshalb wir die Hilfsoperationen in den Interpretationen ebenfalls noch nicht festlegen.<br />

Definition 4.3 cbv-Interpretation<br />

Sei 〈T⊥ C , ✂〉 die flache Halbordnung des Rechenbereichs mit ⊥ als kleinstem Element. Sei<br />

α : <br />

Σn→[(T ⊥ C ) n →T ⊥ C ]<br />

n∈IN<br />

eine Zuordnung von ω-stetigen Operationen an die Operationssymbole mit<br />

<br />

G(t<br />

α(G)(t1, . . .,t n) = 1, . . .,t n) , falls t1, . . . , tn ∈ TC<br />

⊥ , andernfalls<br />

α(f)(t 1, . . .,t n) = ⊥ , wenn ⊥ ∈ {t 1, . . .,t n}<br />

α(condG)(⊥, t 1, t 2) = α(selG,i)(⊥) = ⊥<br />

t2<br />

t ′ 2<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!