Download (1405Kb)
Download (1405Kb)
Download (1405Kb)
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.