www.wikidata.de-de.nina.az
Das Common Lisp Object System kurz CLOS ist die objektorientierte Erweiterung der Programmiersprache Common Lisp Es hat seine Ursprunge in Loops und Flavors und ist im ANSI Standard fur Common Lisp spezifiziert CLOS wird optional durch das Metaobject Protocol kurz MOP implementiert Das MOP ist nicht standardisiert viele Implementierungen halten sich aber im Groben an die Spezifizierung aus dem Buch The Art of the Metaobject Protocol siehe Literaturangaben welches oft einfach als AMOP bezeichnet wird Eigenschaften BearbeitenCLOS erlaubt die Definition von Klassen mit Mehrfachvererbung von Methoden und generischen Funktionen Da Common Lisp eine interaktive und inkrementelle Entwicklung von Programmen in einer Laufzeitumgebung erlaubt konnen auch Klassen zur Laufzeit geandert werden Dies kann z B durch Manipulation des Metaobjektprotokolls erreicht werden das die Instanzen der geanderten Klassen konsistent halt Dieses Verhalten kann durch den Programmierer angepasst werden Insofern ist CLOS ein dynamisches und programmierbares Objektsystem Eine weitere Besonderheit gegenuber anderen objektorientierten Programmiersprachen wie Smalltalk oder Java ist die Tatsache dass Methoden in CLOS nicht Klassen zugeordnet sind sondern separaten generischen Funktionen Eine generische Funktion umfasst eine Menge von Methoden mit verschiedenen Signaturen Beim Aufruf der generischen Funktion fur eine Liste von Argumenten wird dynamisch diejenige Methode ausgewahlt deren Signatur am spezifischsten auf die Argumente passt Generische Funktionen werden auch Multimethoden genannt da die richtige Methode nicht nur aufgrund des ersten Arguments in Smalltalk artigen Objektsystemen oft der Empfanger der Nachricht genannt ausgewahlt wird sondern aufgrund der gesamten Argumentenliste Dieses Verhalten das in CLOS auf elegante Weise eingebaut ist wird heutzutage auch in anderen Sprachen oft in Form der sogenannten Aspektorientierung nachgebaut Literatur BearbeitenSonya E Keene Object Oriented Programming in Common Lisp A Programmer s Guide to CLOS Addison Wesley Professional Boston 1989 ISBN 978 0 201 17589 9 Gregor Kiczales Jim des Rivieres und Daniel G Bobrow The Art of the Metaobject Protocol MIT Press Boston 1991 ISBN 0 262 61074 4 Andreas Paepcke Editor Object Oriented Programming the CLOS Perspective MIT Press Boston 1993 ISBN 0 262 16136 2Weblinks Bearbeiten Objects in the ANSI Common Lisp Standard englisch The Common Lisp Object System MetaObject Protocol MOP Referenz englisch Common Lisp Object System auf der Webseite von Richard P Gabriel englisch A Brief Guide to CLOS von Jeff Dalton englisch 16 Object Reorientation Generic Functions 17 Object Reorientation Classes Zwei Kapitel uber CLOS aus dem Buch Practical Common Lisp von Peter Seibel englisch Abgerufen von https de wikipedia org w index php title Common Lisp Object System amp oldid 205621007