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.

3.3. FORMALE SEMANTIKEN 47<br />

t = g(s1, . . .,sn): (g (n) ∈ Σ).<br />

Nach Induktionsvoraussetzung gilt für alle si:<br />

Somit folgt:<br />

[[si[t ′ /x]]] = [[si[t ′′ /x]]]<br />

[[t[t ′ /x]]]<br />

= [[g(s1[t ′ /x], s2[t ′ /x], . . .,sn[t ′ /x])]]<br />

I.V.<br />

= [[g(s1[t ′′ /x], s2[t ′′ /x], . . .,sn[t ′′ /x])]]<br />

= [[t[t ′′ /x]]]<br />

Operationelle Semantiken unserer Programme sollen also letztendlich immer Grundtermsemantiken<br />

sein. Dagegen sollen denotationelle Semantiken einem Programm einen Datentyp, eine Algebra<br />

zuordnen. Wie wir schon in der Einleitung angedeutet haben, kann aus einem solchen Datentyp<br />

leicht eine Eingabe-Ausgabe-Abbildung, d. h. eine Grundtermsemantik gewonnen werden.<br />

Definition 3.10 Algebraische Termsemantik<br />

Sei=〈A, α〉 eine Σ-Algebra, Y ⊆ X und β : Y →A eine Variablenbelegung. Die algebraische<br />

Termsemantik<br />

[[·]] alg<br />

: TΣ(Y )→A ,β<br />

ist für einen Term t ∈ TΣ(Y ) induktiv definiert durch<br />

[[x]] alg<br />

:= β(x) ,β<br />

[[g(ˆt1, . . ., ˆtn)]] alg<br />

:= g([[ˆt1]] ,β alg<br />

, . . . , [[ˆtn]] ,β alg<br />

,β )<br />

für alle x ∈ Y ,g (n) ∈ Σ und ˆt1, . . .,ˆtn ∈ TΣ(Y ).<br />

Ist t ein Grundterm, so ist β überflüssig und wir schreiben [[t]] alg<br />

. ✷<br />

Die algebraische Termsemantik [[·]] alg<br />

ist somit die eindeutige Fortsetzung von β zu einem Homo-<br />

,β<br />

morphismus von der frei über X erzeugten Termalgebra TΣ(X) in die Algebra. Daraus folgt auch<br />

direkt die Invarianz der auf Grundterme beschränkten algebraischen Termsemantik [[·]] alg : TΣ→A.<br />

Somit ist [[·]] alg eine Grundtermsemantik, die algebraische Grundtermsemantik.<br />

Umgekehrt können wir zu einer Grundtermsemantik auch Datentypen, d. h. Algebren definieren.<br />

Definition 3.11 Datentyp einer Grundtermsemantik<br />

Sei [[·]] : TΣ→A eine Grundtermsemantik. Dann heißt[·] = 〈A, α〉 genau dann ein Datentyp der<br />

Grundtermsemantik [·], wenn<br />

g(a1, . . .,an) = [[g(t1, . . .,tn)]]<br />

für alle g (n) ∈ Σ, t1, . . .,tn ∈ TΣ und a1, . . .,an ∈ A mit [[t1]] = a1, . . .,[[tn]] = an. ✷<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!