- Abstraktion
- Abstraktion ist eine Methode, bei der unter einem bestimmten Gesichtspunkt
die wesentlichen Merkmale eines Gegenstandes oder Begriffes herausgesondert
werden. ([Oestereich98],
S.339)
-
- Argument
- Konkreter Wert eines Parameters. ([Oestereich98],
S.341)
-
- Datenabstraktion
-
Hierunter versteht man das Prinzip, nur die auf ein Objekt anwendbaren
Operationen nach außen sichtbar zu machen. Die tatsächliche innere
Realisierung der Operationen und die innere Struktur des Objektes werden
verborgen, d.h. man betrachtet abstrakt die eigentliche Semantik und lässt
die tatsächliche Implementierung außer acht. ([Oestereich98],
S.343)
-
In Lingo lässt sich dieses Prinzip zwar bewusst anwenden, es kann
jedoch nicht verhindert werden, dass es unterwandert wird, da generell alle
Methoden und Eigenschaften von außen zugänglich sind.
- Dynamische Bindung, Späte Bindung
- Hierunter ist zu verstehen, dass eine Nachricht erst zur Programmlaufzeit
einer konkreten Operation zugeordnet wird, die diese Nachricht dann interpretiert.
([Oestereich98],
S.344)
Der Methodenaufruf in Lingo basiert auf diesem Prinzip.
- Garbage Collection
- Die Garbage Collection sorgt dafür, dass die Laufzeitbibliothek, und
nicht der Programmierer, den Speicherplatz von Objekten freigibt, die nicht
mehr in Gebrauch sind.([Linden99],
S. 12)
In Lingo wird für jede gespeicherte Objektreferenz ein interner Zähler
hochgezählt. Verweist keine Variable mehr auf ein Objekt, d.h. ist
der Zähler 0, wird der Speicherbereich freigegeben.
- Klasse
- Eine Klasse ist die Definition der Attribute, Operationen und der Semantik
für eine Menge von Objekten. Alle Objekte einer Klasse entsprechen dieser
Definition.([Oestereich98],
S.347)
In Lingo wird nicht von Klassen gesprochen, sondern von parent
scripts oder übergeordneten Skripten.
- Nachricht
- Nachrichten sind ein Mechanismus, mit dem Objekte untereinander kommunizieren
können. Eine Nachricht überbringt einem Objekt die Information darüber,
welche Aktivität von ihm erwartet wird, d.h. eine Nachricht fordert ein
Objekt zur Ausführung einer Operation auf. Eine Nachricht besteht aus
einem Selektor (einem Namen), einer Liste von Argumenten und geht an genau
einen Empfänger. Der Sender einer Nachricht enthält ggf. ein Antwort-Objekt
zurück. Durch Polymorphismus kann eine Nachricht zum Aufruf einer von
mehreren gleichlautenden Operationen führen. ([Oestereich98],
S.349)
-
- Objekt
- Ein Objekt ist eine konkret vorhandene und agierende Einheit mit eigener
Identität und definierten Grenzen, das Zustand und Verhalten kapselt.
Der Zustand wird repräsentiert durch die Attribute und Beziehungen, das
Verhalten durch Operationen bzw. Methoden. Jedes Objekt ist Exemplar (Synonym:
Instanz) einer Klasse. Das definierte Verhalten gilt für alle Objekte
einer Klasse gleichermaßen, ebenso die Struktur ihrer Attribute. Die
Werte der Attribute sind jedoch individuell für jedes Objekt. Jedes Objekt
hat eine eigene, von seinen Attributen u.a. unabhängige, nicht veränderbare
Identität.([Oestereich98],
S.350)
In Lingo heißen Objekte auch child objects
oder untergeordnete Objekte.
- Operation
- Operationen sind Dienstleistungen, die von einem Objekt mit einer Nachricht
angefordert werden können, um ein bestimmtes Verhalten zu bewirken. Sie
werden implementiert durch Methoden. In der Praxis werden Operationen und
Methoden häufig synonym verwendet. ([Oestereich98],
S.351)
-
- Parameter
- Ein Parameter ist die Spezifikation einer Variablen, die Operationen, Nachrichten
oder Ereignissen mitgegeben, von diesen verändert oder zurückgegeben
wird. ([Oestereich98],
S.352)
-
- Polymorphismus
- Polymorphismus (Vielgestaltigkeit) heißt, dass gleichlautende Nachrichten
an kompatible Objekte unterschiedlicher Klassen ein unterschiedliches Verhalten
bewirken können. Beim dynamischen Polymorphismus wird eine Nachricht
nicht zur Kompilierzeit, sondern erst beim Empfang zur Programmlaufzeit einer
konkreten Operation zugeordnet. Voraussetzung hierfür ist das dynamische
Binden. ([Oestereich98],
S.352)
Lingo unterstützt dynamischen Polymorphismus. Der Nachteil des Prinzips
ist jedoch, dass Programmfehler erst zur Laufzeit entdeckt werden können.
- Vererbung
- Vererbung ist ein Programmiersprachenkonzept für die Umsetzung einer
Relation zwischen einer Ober- und einer Unterklasse, wodurch Unterklassen
die Eigenschaften ihrer Oberklassen mitbenutzen können. ([Oestereich98],
S.357)
In Lingo lässt sich dies durch die Benutzung der ancestor-Eigenschaft
erreichen. Von Ober- und Unterklassen kann jedoch nicht gesprochen werden,
da der ancestor keine Klasse sondern ein
Objekt ist, und man ihn während der Laufzeit ändern kann.