... übernimmt,2.1
In Eiffel sind alle Klassen implizit von ANY abgeleitet.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... anzuheften:2.2
Das folgende Beispiel setzt natürlich voraus, daß Figures.Figure eine Erweiterung von Disciplines.Object ist.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Speicher3.1
In Oberon gibt es kein Hauptprogramm. Daher wird zu Beginn der Ausführung eines Programms festgestellt, welche Module vorhanden sind. Dieses Verfahren setzt voraus, daß die Objekte (übersetzte Module) alle hintereinander im Speicher liegen und durch ein spezielles Objekt beendet werden. Bei der Verwendung fremder Objekte bestünde die Gefahr, daß sie zwischen den Oberon-Modulen angeordnet würden. Dies würde zum sofortigen Absturz führen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... wird.5.1
Dies ist eine minimalistische Definition, da nichts über Methoden und andere OO-Techniken gesagt wird. Sie hilft jedoch bei den hybriden Programmiersprachen wie z.B. C++.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... verweisen.5.2
Falls nie ein schwergewichtiger Zeiger auf ein Objekt gesetzt wird, bleibt ein Objekt ebenfalls leben. Auf diese Weise ist der Umgang mit schwergewichtigen Zeigern nur dort notwendig, wo kooperative Mechanismen erforderlich sind.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Weise5.3
Semantisch identisch heißt, daß ohne Bruch der Abstraktionsgrenzen kein Unterschied festzustellen ist. Das heißt, daß einzelne verborgene Komponenten durchaus unterschiedlich sein können. Wenn beispielsweise sich hinter dem Objekt ein Dateideskriptor auf eine bestimmte Datei verbirgt, kann dieser durchaus einen unterschiedlichen Wert haben und trotzdem auf die gleiche Datei verweisen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ist),5.4
Beispiele hierzu gibt es unter
http://www.mathematik.uni-ulm.de/sai/ws00/oolib/zb/events.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... unterstützt.5.5
In der Ulmer Oberon-Bibliothek geschieht dies durch Services.Installed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Objekten.5.6
Eine kurze Übersicht über die Variationen auf diesem Feld liefert die Antwort zur Frage 1.4 in den FAQ zu comp.object, zu finden unter
http://www.cyberdyne-object-sys.com/oofaq/oo-faq-S-1.4.html.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Services.Object5.7
Die Motivation für den Namen Services folgt in Kürze.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... basiert:5.8
Das Beispiel ist in vollständiger Form unter
http://www.mathematik.uni-ulm.de/sai/ws00/oolib/zb/Collections-14/
zu finden.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Keedy6.1
Mehr dazu unter http://www.informatik.uni-ulm.de/abt/rs/staff/projects/monads/PersistentVMemoryE.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ist.6.2
Hinweis: Diese Definition ist nicht allgemeingültig und nur bei reinen Bibliothekslösungen sinnvoll, da beispielsweise bei dem Monads-System keine Konvertierungen oder Transfers notwendig sind.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... voraus.6.3
Es gibt Lösungen, die nur mit Modulen als 1st class objects auskommen, wenn pro Modul nur ein persistenter Typ definiert wird. Jedoch führt ansonsten prinzipiell kein Weg daran vorbei.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... aus:6.4
Der Programmtext ist den Beispielen Collections-14 (noch ohne Persistenz auf direkter Basis von Services.Object und Collections-16 (mit Persistenz) entnommen - zu finden unter http://www.mathematik.uni-ulm.de/sai/ws00/oolib/zb/Collections-14/ und http://www.mathematik.uni-ulm.de/sai/ws00/oolib/zb/Collections-16/.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Collections-166.5
Zu finden unter http://www.mathematik.uni-ulm.de/sai/ws00/oolib/zb/Collections-16/.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.