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.

176 KAPITEL 8. NICHT-FREIE DATENTYPEN<br />

Eine Erweiterung um einen Kapselungsmechanismus würde dies jedoch ändern. Innerhalb eines<br />

Moduls würden Mengen schlicht durch freie Konstruktorterme mehrdeutig repräsentiert. Außerhalb<br />

des Moduls dürfte aber nur mit bestimmten Funktionen, beispielsweise Erzeugung der leeren<br />

Menge, Hinzunahme und Entnahme eines Elements und Test auf Leerheit und Enthaltensein eines<br />

Elements, auf die Konstruktorterme zugegriffen werden. Alle mit diesen Funktionen nicht unterscheidbaren<br />

Konstruktorterme würden als semantisch gleich betrachtet. Diese Beobachtungs- oder<br />

Verhaltenssemantik (vgl. 6.5 in [Wir90]) würde das Geheimnisprinzip abstrakter Datentypen realisieren.<br />

Natürlich wäre außerhalb des Moduls Patternmatching mit den Konstruktoren der internen<br />

Darstellung nicht zulässig, aber bei Mengen wäre immerhin noch ein Patternmatching mit einer<br />

View {EmptySet (0) ,NonEmptySet (0) } möglich.<br />

Views und gekapselte Module mit Beobachtungssemantik wären somit interessante Erweiterungen<br />

unserer Programmiersprachen und des pragmatischen Konzepts der Konstruktorfunktionen zur<br />

Spezifizierung nicht-freier Datentypen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!