Zusammenfassung
In diesem Kapitel nehmen wir eine objektorientierte Sicht auf die Realisierung der Meta-Interpretationstechnik ein, und diskutieren die Vorteile, die sich daraus im Vergleich zu der funktionalen Sicht ergeben. Wir beginnen mit einigen Überlegungen zur Funktion von Methaphern beim Entwurf komplexer Softwaresysteme. Anschließend führen wir in die Grundprinzipien objektorien-tierter Programmierung ein, die eine metapherbasierte Darstellung komplexer Zusammenhänge insofern besonders unterstützt, als sie erlaubt, Programmabläufe als Interaktion zwischen miteinander kommunizierenden Agenten zu deuten. Es versteht sich, daß die Ausführungen zu diesem Punkt nur eine partielle Behandlung dieses umfangreichen Themas sein können. Unsere Hauptaufmerksamkeit gilt dabei dem, was wir für den Kern des objektorientierten Gedankens halten, nämlich dem Problem der Erweiterung des Konzeptes “Datenstruktur” von einer reinen deklarativen, statischen Form in Richtung auf eine deklarativ-prozedurale Auffassung.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Literatur
Vgl. (Orthony 79, insb. Kapitel über Metaphor and Science, S. 356–437) und (West/Travis 91) für eine Besprechung der Rolle der computational metaphor in der KI.
“Die metaphor a (trans latio; μεταφoρα) ist der Ersatz... eines verbum proprium (>Krieger<) durch ein Wort, dessen eigene proprie-Bedeutung mit der des ersetzten Wortes in einem Abbild-Verhältnis... steht (>Löwe<)” (Lausberg 71, S. 78).
“Information hiding” wurde als allgemeines Entwurfsprinzip für Software-Systeme von Parnas zur Diskussion gestellt: “... we should allow the designers, those who specify the structure [of a system], to control the distribution of design information... We should not expect a programmer to decide not to use a piece of information, rather he should not possess information that he should not use.” (Parnas 71, S. 342). “... it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions which are likely to change. Each module is then designed to hide such a decision from the others.” (Parnas 72, S. 1058). Datenstrukturen stellen in diesem Sinne Module dar.
Das Beispiel haben wir von Scheme (Abelson/Sussman, S. 83 f) nach Common-Lisp adaptiert.
Funktionale Objekte können in Lisp auch in Kurzform mit Hilfe des sogenannten Read-Macros #′ notiert werden. Ein Ausdruck der Form “#′<symbol-or-lambda-expression>” wird als (function <symbol-or-lambda-expression>) eingelesen.
Unser M(icro) C(ommon) F(lavors) System realisiert eine Untermenge des Flavor-systems wie es in (Weinreb/Moon 81, S. 279–313) und (Symbolics 85, S. 417–477) dokumentiert ist. Darüber hinaus bietet es aber eine Reihe experimenteller Eigenschaften (Flavors sind z. B. selbst nachrichtenfähige Objekte), die aktuelle Forschungsergebnisse bzw. Tendenzen beim Entwurf objektorientierter Sprachen aufgreifen. Für die Realisierung der BABYLON-Architektur werden wir allerdings nur Basiskonstrukte benutzen, die wir in diesem Abschnitt auch kurz diskutieren.
Diese Möglichkeit haben wir in unserem MCF System experimentell realisiert.
Man beachte, daß in unserem MCF-System wir neben (defwhopper (<flavor> <selector>)...) die Syntax (defmethod (<flavor> :whopper <selector>)...) erlauben. Diese ist eigentlich vorzuziehen, weil “:whopper” genauso wie “:or” “:after” usw. einen Methodenkombinationstyp bezeichnet.
Die entsprechende, allgemeinste Klasse hat in CLOS den Namen T.
Im Anhang II zeigen wir, wie die Hauptflavorkonstrukte auf der Basis von CLOS definiert werden können.
Auf die weiteren (sehr umfassenden) Optionen für defgeneric können wir hier nicht eingehen (vgl. Steele 90, S. 826 ff)
Rights and permissions
Copyright information
© 1993 Springer Fachmedien Wiesbaden
About this chapter
Cite this chapter
di Primio, F. (1993). Prinzipien objektorientierter Programmierung. In: Hybride Wissensverarbeitung. DUV: Datenverarbeitung. Deutscher Universitätsverlag, Wiesbaden. https://doi.org/10.1007/978-3-663-14613-1_13
Download citation
DOI: https://doi.org/10.1007/978-3-663-14613-1_13
Publisher Name: Deutscher Universitätsverlag, Wiesbaden
Print ISBN: 978-3-8244-2039-1
Online ISBN: 978-3-663-14613-1
eBook Packages: Springer Book Archive