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.

134 KAPITEL 6. UNTERSUCHUNG DER ς-SEMANTIKEN<br />

Die Klasse 1 aller Modelle des Programms P wird mit ModP bezeichnet. ✷<br />

Zueinander isomorphe Modelle werden üblicherweise nicht unterschieden. Man spricht dann von<br />

abstrakten algebraischen Datentypen. Trotzdem besitzt eine algebraische Spezifikation im allgemeinen<br />

viele (nicht zueinander isomorphe) Modelle, von denen nur eines der durch die Spezifikation<br />

bestimmte (abstrakte algebraische) Datentyp sein soll. Bei rein aus Gleichungen bestehenden algebraischen<br />

Spezifikationen wird hierfür das initiale Modell, d. h. die initiale Algebra aller Modelle,<br />

gewählt. Es ist bekannt, daß das initiale Modell in diesem<br />

£<br />

Fall immer existiert: Es ist die Quotientenalgebra<br />

der Grundtermalgebra modulo der Kongruenz der Gleichungen (bzw. ist isomorph<br />

zu dieser). Das initiale Modell eines Programms P ist somit die Quotientenalgebra der<br />

Grundtermalgebra TΣ modulo der Kongruenz ←→È<br />

, TΣ/ ∗<br />

←→ . Im Kalkül der Termerset-<br />

P<br />

zungssysteme wird das initiale Modell bzw. diese Quotientenalgebra ebenso verwendet (Kapitel 3<br />

in [Der&Jou90]).<br />

Warum definieren wir nicht analog zu den algebraischen Spezifikationen den Datentyp eines Programms<br />

als dessen initiales Modell?<br />

Hierfür gibt es zwei gute Gründe.<br />

Erstens sollen Programme ausführbare Spezifikationen sein. Da sich mit abstrakten Äquivalenzklassen<br />

jedoch nicht effektiv rechnen läßt, sind Berechnungen nicht in beliebigen Quotientenalgebren<br />

möglich. Programme algebraischer Spezifikationssprachen, die ausführbar sein sollen, sind daher<br />

terminierende, konfluente Termersetzungssysteme. In diesem Fall ist die initiale Algebra isomorph<br />

zum sogenannten Normalformmodell. Da ein Programm P bzw. dessen Reduktionsrelation −−→<br />

P<br />

grundsätzlich konfluent ist, müssen wir für die Wohldefiniertheit des Normalformmodells nur noch<br />

die Termination fordern.<br />

Definition 6.2 Normalformmodell eines terminierenden Programms<br />

Das Programm P, d. h. seine Reduktionsrelation −−→ , sei terminierend. Das Normalformmodell<br />

P<br />

des Programms P ist definiert als die Algebra Mnf P := 〈TΣ ↓P,α〉, gegeben durch<br />

und<br />

TΣ ↓ P := {t↓ P | t ∈ TΣ}<br />

g Mnf<br />

P (t) := g(t)↓ P<br />

für alle g (n) ∈ Σ, t ∈ (TΣ ↓ P) n . ✷<br />

Im Normalformmodell ist eine Äquivalenzklasse durch eine Normalform eindeutig repräsentiert. Die<br />

Berechnung der Semantik eines Terms erfolgt schlicht durch die Berechnung von dessen Normalform.<br />

Es ist zu beachten, daß trotz der großen Ähnlichkeit zu der in Definition 3.7, S. 45, definierten<br />

Normalformsemantik das Normalformmodell kein Datentyp dieser Normalformsemantik ist. Der<br />

Träger des Normalformmodells enthält kein spezielles Element ⊥, und es wird nicht zwischen Konstruktornormalformen<br />

und anderen Normalformen unterschieden.<br />

Hieraus ergibt sich die zweite unerwünschte Eigenschaft des initialen Modells: Zwar wird kein spezieller<br />

Wert ⊥ für nicht-terminierende Berechnungen benötigt, aber im allgemeinen enthält der Träger<br />

des Normalformmodells neben den Konstruktorgrundtermen, die grundsätzlich Normalformen sind,<br />

auch noch andere Terme.<br />

1 Entsprechend unserer Anmerkung in 2.1 ist die Kollektion der Modelle eine Klasse und keine Menge.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!