8 Glossar

A - B - C - D - E - F- G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z

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.

7.5 setScriptList() 9 Literatur