Diskussion:Common Lisp

Letzter Kommentar: vor 9 Jahren von Zero Thrust in Abschnitt Logo

Inhalt Bearbeiten

Jetzt ist schon wieder die ganze Literaturliste weg! :-(

 Bitte aus einer alten Version heraussuchen und wieder einbauen. Danke!!!
   
   Wie waers mal mit ein paar deutschsprachigen Literatur und Weblinks? --91.38.186.14 17:24, 17. Mai 2012 (CEST)Beantworten

Änderungen von Thomas Stauß Bearbeiten

Hallo Herr Stauß. Leider machen Ihre Einträge über Common Lisp hier wenig Sinn.

Common Lisp spezifiziert einen Lisp-Dialekt. 'Das Lisp' gibt es nicht. EuLisp, ISLisp, Emacs Lisp, etc. sind ebenso Lisp-Dialekte wie Common Lisp. Common Lisp wurde auch nicht entworfen, um alle bekannten Lisp-Dialekte zu vereinheitlichen. Common Lisp wurde vom US Verteidigungsministerium in Auftrag gegeben, als mehrere Gruppen Lisp-Implementationen und Dialekte in der MacLisp-Tradition entwickelt haben (MIT mit Lisp Machine Lisp und NIL, CMUCL mit Spice Lisp, ...). Es sollte also die Entwicklung und Verbreitung von verschiedene Dialekten verhindert werden, die sonst möglicherweise die Pflege von Software erschwert hätte. Das Verteidigungsministerium hatte viele Lisp-Software im Einsatz oder in der Entwicklung und fürchtete die Vielfalt der Dialekte. Daher wurde dem Verteidigungsministerium die Standardisierung eines neuen Lisp-Dialekts in der MacLisp-Tradition vorgeschlagen und dann von diesem auch bezahlt. Überwiegend nicht berücksichtigt wurden Lisp-Dialekte wie InterLisp (verwendet insbesondere durch Xerox), Franz Lisp und Standard Lisp. Der Haupteinfluss kommt von sicher von MIT's Lisp Machine Lisp - trotzdem mußte dieser Dialekt erheblich überarbeitet werden. 1984 wurde dann die erste Sprachbeschreibung (CLtL1) veröffentlicht. Dann wurde noch viele Jahre an dem Thema gearbeitet. An dem Standard haben sehr viele Menschen gearbeitet, nicht nur Steele. Daher ist es auch nicht besonders hilfreich, seine Arbeit so extrem herauszuheben. Da waren viele Größen aus der Lisp-Gemeinde beteiligt (z.B. Richard P. Gabriel oder Kent Pitman).

'Lisp Symposien' haben auch nicht an dem Standard gearbeitet. Das waren ganz normale ACM-Veranstaltungen. Gearbeitet wurde an dem Standard ausserhalb dieser Veranstaltungen. Auf diesen Veranstaltungen wurden Zwischenergebnisse präsentiert. Aus dem Lisp Symposium hat sich dann eine Konferenzreihe entwickelt, die bis in die heutigen Tage (die nächste in 2009 in Boston) stattfinden. Noch einmal, die 'Lisp Symposien' waren Veranstaltungen mit Vorträgen zu diversen Themen. Sie waren nicht das Vehikel oder die Umgebung, in denen Common Lisp entwickelt wurde.

Es gibt auch jede Menge Lisp-Implementationen und Dialekte, die sich nicht an den Common Lisp Standard halten - es gibt viele Leute in der Lisp-Community die Common Lisp damals und heute nicht mochten. In Europa hat man einige Zeit an EuLisp gearbeitet. ISLisp ist ein ISO Standard. Es sind auch weiterhin einige andere Dialekte von Lisp im Einsatz. Es gibt keinerlei Anlass Lisp und Common Lisp gleich zu setzen. Lisp ist eine Familie von Programmiersprachen und hat weder einen Standard, noch eine Implementation - absichtlich. Common Lisp ist ein Lisp-Dialekt, der sogar verschiedene Sub-Dialekte hat und in diversen Varianten implementiert wurde.

CLtL1 und CLtL2 sind auch keine Lisp-Bibeln. Es sind Bücher, die inzwischen überholte Entwicklungsstände von Common Lisp beschreiben. Die aktuelle Version von Common Lisp wird im ANSI CL Standard beschrieben und unterscheidet sich von CLtL1 und CLtL2 durchaus wesentlich.

Das Buch von David Margolies ist bisher noch nicht erschienen (ein Erscheinungstermin ist auch nicht absehbar), kann daher entfernt werden.

Lieber Herr Stauß, sie sollten sich mal bei Gelegenheit die Englische Version dieser Seite durchlesen, und nicht hier ihre persönlichen Ideen wiedergeben. Als Lektüre empfehle ich Ihnen auch folgendes Dokument: The Evolution of Lisp von Steele/Gabriel: http://www.dreamsongs.com/NewFiles/HOPL2-Uncut.pdf

Ich würde die Leser bitten, aus der aktuellen Version, wieder eine brauchbare zu entwickeln, die die allgemeine Sicht auf Common Lisp repräsentiert und nicht die Sicht eines einzelnen.

Mit freundlichen Grüßen,

Rainer Joswig ( http://lispm.dyndns.org )

Diverses Bearbeiten

Was ist eine 'moderne' Programmiersprache? 'Modern' würde ich einfach weglassen.

An dem Artikel ist so vieles zu überarbeiten...

Der Bereich über lexikalische Bindung gehört nicht auf diese Seite. Die zugehörigen Beispiele sind schwach und nicht idiomatisch.

Der Bereich über dynamische Bindung sollte ebenfalls verkürzt werden. Sachlich ist er auch nicht richtig. Dynamische Bindung hat nix mit 'global'/'lokal' zu tun. Für das Beispiel braucht man sich keine PRINT-DATE Funktion ausdenken. In der Sprache gibt es Funktionen, die Variablen wie *print-depth*, *print-level*, etc. benutzen.

S-Ausdruck-basierter? Was ist das denn?

Symbolischer Ausdruck; eine Konvention semi-strukturierte Daten in von Menschen lesbarer textueller Form darzustellen. Siehe: http://en.wikipedia.org/wiki/S-expression -- Dr. Rollo Bollo Tue Apr 8 18:03:40 CEST 2008

Genera bietet eine ANSI-CL-Unterstützung. Nicht vollständig, aber doch weitgehend.

Wegen einer URV von hier habe ich auf die Version vom 01:28, 18. Feb 2005 reverted. Versionslöschung ist beantragt. Grüße, ElRakı ?! 07:37, 6. Dez 2005 (CET)

Von Benutzer Diskussion:Kingruedi kopiert.

Hallo Kingruedi. Kann es sein, dass du bei deinen Bearbeitungen in Common Lisp von hier kopiert hast? Eine Äußerung von dir wäre da sehr gut, den Artikel hab ich noch nicht bereinigt. Grüße, ElRakı ?! 06:32, 6. Dez 2005 (CET)

Änderung: Ich habe die URV entfernt, bei Einspruch hier oder auf der Artikel-Diskussionsseite. Grüße, ElRakı ?! 07:34, 6. Dez 2005 (CET)
Nein, so etwas würde ich nicht machen. Wie du aber auch sehen kannst, wurde der entsprechende Text nicht von mit, sondern von der IP 134.130.161.64 eingetragen. --Kingruedi 16:22, 6. Dez 2005 (CET)
Mit [diesen 2 Edits von dir, nachdem die IP etwas eingefügt hat, wurden von der oben schon angegeben Seite 1:1 kopiert. Auch davor wurden bei deinen Edits 3 Sätze von der Webseite kopiert, kannst du mir da bitte sagen, was nicht URV ist? Das sind mir zuviel kopierte Sätze um an einen Zufall zu glauben, sorry.
Ich werde wieder auf meine URV-freie Version reverten, da jetzt auch wieder ne URV dabei ist, oder gibts ncoh nen Einspruch? Grüße, ElRakı ?! 18:47, 7. Dez 2005 (CET)
Wenn man sich die Versionsgeschichte so anguckt, sieht das eher so aus, als hätte die Seite, von der das angeblich kopiert sein soll, den Artikel aus der Wikipedia kopiert. Erstens kann ich dir versichern, dass ich keinen Text kopiert habe, vor allem nicht von einer derartig dünnen Quelle. Ansonsten schau dir mal die Versionen an: http://de.wikipedia.org/w/index.php?title=Common_Lisp&diff=5440058&oldid=5437183 das zeigt doch eindeutig, dass der Wikipediatext, von 2 Autoren hier editiert erst zu dem wird, was man später auf der Seite findet, von der der Text angeblich stammen soll. Auf der Seite finde ich kein Datum, wann der Eintrag eingestellt wurde. Die Cache Informationen sagen zwar 26. April 2004, aber das sagen sie bei jeder Seite auf dem Server. Wende dich also bitte an den Betreiber der Seite, damit dieser prüft wann Dieser Beitrag in der Form eingestellt wurde. --Kingruedi 16:06, 8. Dez 2005 (CET)
Das dachte ich mir erst auch, ich habe allerdings bsiher vier andere Kopien von dieser Webseite (in einen Stück kopiert) gefunden, siehe auch Benutzer:ElRaki/Informatik-URVs. Deswegen ist es meiner Meinung nach unwahrscheinlich, dass diese Webseite Texte aus der WP kopiert.
Der angebene Edit zeigt lediglich, dass zusätzlich zu deinen Bearbeitungen auch eine IP etwas geändert hat, das heißt nicht, dass es zwei verschiedene Benutzer sind.
Ich werde trotzdem noch eine Mail an den Betreiber schicken, wann die Inhalte online gestellt wurden.
PS: Wie wäre es die Diskussion auf der Common Lisp-Diskussionsseite zu kopieren und da weiter diskutieren? Grüße, ElRakı ?! 02:41, 12. Dez 2005 (CET)
Hallo Kingruedi, ich habe jetzt eine Antwort vom Betreiber der betreffenden Webseite bekommen. Die Artikel hier und auf der Webseite sind, laut der Mail, ziemlich zeitgleich entstanden, er kann nciht wirklich nachvollziehen, wer von wem kopiert hat und nimmt an, dass einer Ihrer Autoren kopiert hat. Der Text wurde dort geändert und damit ist die URV hinfällig. Da du einen Teil schon neu geschribeen hast: Könntest du die alte und neue Versionen zusammenlegen, da ich vom Thema nicht wirklich viel Ahnung habe.
Sorry für die Umstände, ElRakı ?! 20:47, 22. Dez 2005 (CET)
Ende der Kopie --ElRakı ?! 20:47, 22. Dez 2005 (CET).

1994 erste standardisierte OO-Programmiersprache? Bearbeiten

Das kann so nicht stimmen. C++ etwa ist auch eine OO-Sprache und wurde bereits 1990 von der ISO standardisiert. --RokerHRO 20:18, 24. Aug. 2007 (CEST)Beantworten

C++ wurde 1998 standardisiert. --Kingruedi 22:52, 24. Okt. 2007 (CEST)Beantworten


== Den Artikel Common LISP halte ich im großen und ganzen für nicht akzeptabel. Common LISP war nicht direkt eine Programmersprache sondern der herausragende Versuch von Steele in div. Symposien die auseinanderdriftenden Dialekte (nahezu jede Implemetierung prägte ihren eigenen Dialekt) von LISP wieder zusammenzuführen. Eine Angabe über die "hohe Kunst" des Common LISP Programmierens halte ich für absolut überflüssig, sie bei LISP anzuführen hier in Wikipedia üblich. Die Unterschiede jeglichen LISPs zu Common LISP sind nirgendwo aufgeführt, also weshalb eine derart ausfürliche Dokumentation von LISP nach den Symposien von Common LISP im Artikel "Common LISP", wo diese schon unter "LISP zu finden ist. Für angepasster halte ich, eventuell die Übereinkünfte die Common LISP unter allen vorigen LISPs erreicht hat kurz anzusprechen. Und auch den immensen Erfolg von Steele mit seinem Projekt: Nahezu alle LISPs übernahmen die Ergebnisse der Arbeit von Steele voll, niemand wich vom erarbeiteten Standard ab. Ohne Zweifel wurde der Name der Symposien später als Begriff in die Namen einiger LISP-Sprachen übernommen, aber Common LISP war eher eine nicht vollständige Definition eines "gemeinsamen LISPs"

--Thomas Stauß 21:27, 24. Okt. 2007 (CEST)Beantworten

Ich gebe dir recht, dass die Erklärungen zu Lisp wohl eher in den Artikel LISP gehören. Wobei die Informationen erst in den Lisp-Artikel eingearbeitet werden sollten, bevor sie hier gelöscht werden. Aber zum Beispiel der Teil über das Paketsystem oder Entwicklungsumgebungen gehört in den Common Lisp Artikel. --Kingruedi 22:52, 24. Okt. 2007 (CEST)Beantworten


Oh, entschuldige, ich bin erst seit ein paar Tagen bei Wikipedia, ich werd' mal versuchen Teile des Common-LISP-Artikels in den LISP-Artikel einzuarbeiten. Allerdings denke ich, dass die Entwicklungsumgebungen dort auch besser aufgehoben sind, Common-LISP-Entwicklungsumgebungen sind einfache LISP-Entwicklungsumgebungen, die sich Common-isieren lassen haben durch die überzeugenden Arbeiten von Guy Steele und den seinen, sich ihrem durchschlagenden Erfolg nicht entziehen konnten. Ohne Zweifel haben sich die meisten "Common" auf die Produktverpackung geschrieben, was aber nicht heißt, dass sie den Begriff "Common LISP" definieren, sondern vielmehr, dass sie an der "Common"-Bewegung teilnehmen. Also für meine Begriffe weiter ganz normale LISPs sind, eben nach den anfangs nicht großen Einschränkungen der "Common LISP"-Symposien. --194.97.229.169 00:29, 25. Okt. 2007 (CEST)Beantworten


Lieber Kingruei, ich denke, dass Deine Arbeit unter Common Lisp so nicht ganz in Ordnung ist, was hältst Du von meinem Satz im Artikel Common Lisp: Common Lisp ist keine Programmiersprache, sondern ein Standard der Programmiersprache Lisp und bezeichnet oftmals eine Implementierung von Lisp, die dem Standard Common Lisp entspricht.

,der bedeuten würde, dass Literatur, weblinks und Implemetationen zu Common Lisp doch unter Lisp aufgeführt werden müssten, außer eben die Dinge, die zu dem Vorgang der Standardisierung gehören. --Thomas Stauß 19:28, 25. Okt. 2007 (CEST)Beantworten

Ich halte nicht viel von dem Satz, da Common Lisp eine eigene Programmiersprache ist. Auch wenn es als Idee entstanden ist, die Gemeinsamkeiten der Lisp-Dialekte zusammen zu fassen. Aber spätestens wenn man zu Scheme kommt, hört es einfach auf. Lisp ist eben nicht Common Lisp, auch wenn Common Lisp Lisp ist.

Ganz zu schweigen davon, dass die Links und Literatur sich explizit auf Common Lisp bezieht und daher in den Common Lisp-Artikel gehört. Siehe auch mein Kommentar auf der LISP-Diskussionsseite. --Kingruedi 21:10, 25. Okt. 2007 (CEST)Beantworten

Hallo Kingruedi, Gut, es gibt genug Implementationen von Common Lisp, so dass man unter großen Umständen davon sprechen kann, dass Common Lisp eine Programmiersparche ist. Eigentlich ist aber LISP die Programmiersprache, die in einigen Dialekten auseinanderdriftetet. Dann begann eine Gruppe von Wissenschaftlern mit der Common-isierung, die ich schon einmal wohl undeutlich als Prozess der weiteren Entwicklung von LISP beschreiben habe. Ich habe in Deinen Worten Zustimmung gelesen dafür Common Lisp als The Lisp that's common (gebräuchlich) aufzufassen und nicht komplett als Eigennamen, der aus zwei Worten besteht. Übrigens zweigt Scheme stark von Common Lisp ab, Common Lisp von LISP 1.2 (oder war'S 1.3) garnicht. Also Scheme, das muss ich echt wissen, schließlich habe ich mich da zwei Semester durchgeplagt ist echt kein Common LISP, verwendet aber die dort entwickleten Grundlagen bezüglich allen möglichen Eigenschaften, die eine Programmeirsprache haben kann und eine ähnliche Syntax. Ja nochmal: Common ist einfach ein Adjektiv vor LISP ,"Common Lisp" ist nicht ein neuer "Markenname".

Ich drücke jetzt mit unguten Gefühlen nochmal auf das "rüchgängig": Mir artet das zu sehr in einer Art "Kampf" aus. Ich möchte Dich darauf hinweisen, dass das was ich schreibe so gut wie garnicht von mir kommt, sondern ich einfach das wiederkaue, was mir unter Verbrauch hoher Steuermittel, evt. auch der aus Deinem Einkommen, vermittelt wurde. Ich habe allerdings ein wenig den Eindruck, dass ich zu unsensibel vorgegangen bin. Wie kämst Du sonst darauf, dass ich bei den Literaturangaben den Paul Graham "On Lisp" einfach übersehen hätte. Ich habe ihn absichtlich weggelassen, da er weder mit der "Common"-Spezifikationen von LISP noch mit den daraus resultierenden ANSI-Spezifikationen von LISP etwas zu tun hat. Irgenwie bin ich ein wenig betrübt über DEin Verhalten. Was ich zu Common LISP geschrieben habe ist derart primitiv, es gibt noch so viel zu ergänzen, da gibt es noch so viel zu tun. Und ich möchte Dich wirklich herzlich einladen, Deine MItarbeit über irgendwelche Sekretariatsjobs wie Schreibweisen korrigieren, im Internet noch zusätzliche Literatur mit den Buchstaben "LISP" im Titel zu finden oder textgestalterische Tätigkeiten hinaus wachsen zu lassen. Du bist mir jetzt bitte nicht böse, ja? Aber es wäre großartig, einen Mitautor in Dir zu gewinnen, einen der sich mit dem Thema Common LISP beschäftigt. Die weitere Informationsgewinnung scheint allerdings fast ausschließlich über papierne Bücher möglich sein, ich hoffe das machst Du genauso gerne wie das Recherchieren im Internet. Ja, wäre schon nett, die veröffentlichten Schriften der Common-Lisp-Tagungen mal auf den Gehalt für einen Wikipedia Artikel zu durchforsten.

Viele Grüße --194.97.202.45 10:25, 26. Okt. 2007 (CEST)--Thomas Stauß 10:28, 26. Okt. 2007 (CEST)Beantworten

Die Bücher die ich aufgelistet habe, beziehen sich explizit auf Common Lisp. (Okay, Ausnahme "On Lisp". Gut, das nehme ich raus) Das gleiche gilt für die Links. Ich verstehe da einfach deine Auswürfel Kriterien nicht. Warum löschst du zB die HyperSpec raus? Das ist zB ein Dokument, das explizit auf dem ANSI Standard basiert (AFAIK ist es nur eine andere Aufbereitung des Standards). Wenn etwas also zu dem Artikel gehört, dann zB das.

--Kingruedi 17:01, 26. Okt. 2007 (CEST)Beantworten

Lieber Herr Ruedi, meine "Auswürfelkriterien" basieren auf Kenntnissen aus drei Vorlesungen an wohl der Uni schlechthin in der Bundesrepublik Deutschland, wenn es um LISP geht: Kaiserslautern. Ich höre schon die Masse blöken! Zusätzlich dazu, dass einem vorgelesen wird, liest man mit dem gehörten im Kopf (ohne das käme man nicht mal ein Viertel so weit) noch selbst weiter. Dadurch entwickelt man eine gewisse Minimalkompetenz. Von der den Artikel doch nach Deinen und anderer Überarbeitungen eine tiefe Kluft trennt. Weißt Du, dass generell jeder, ob mit oder ohne Abitur, in Vorlesungen an den Universitäten herzlich willkommen ist? Besonders Professoren freuen sich meist am meisten über Besuch!

Thomas Stauß

Wenn Common Lisp und Scheme Dialekte derselben Sprache (LISP) sind, dann sind auch C++ und Java Dialekte derselben Sprache (ALGOL oder was auch immer). Die Unterschiede und Gemeinsamkeiten sind jedenfalls ähnlich groß, und eine Verwandtschaft ist in beiden Fällen gegeben... --Mulk 16:53, 3. Nov. 2007 (CET)Beantworten

Lieber Mulk,

Common LISP ist kein Dialekt von LISP, Scheme ist einer, C++ ist kein Dialekt von C sondern eine Erweiterung um objektorierte Elemente, Java ist kein Dialekt von C++. Jetzt würde ich sehr gerne einen Artikel Dialekt(Programmiersprache) einstellen. Allerdings nur unter der Bedingung, dass, wo wir schon so weit waren, dieser in meinem Hoheitsgebiet angesiedelt wird, ICH der König bin, der King und nicht der Ruedi und nicht Du und auch kein anderer. Wenn Du/Ihr das im Vorstand von Wikipedia durchbekommt, gerne, sonst eben nicht. Thomas Stauß

Deine Beschreibung von C++ tut sowohl C++ als auch C sehr unrecht. Sie trifft eher auf Objective-C zu.
Ungeachtet dessen verstehe ich nach wie vor nicht, wieso Common Lisp keine eigene Sprache sein soll. Was genau definiert denn Deiner Meinung nach eine Programmiersprache? Und noch einmal: Warum ist C++ kein Standardisierungsversuch von ALGOL? (Und nein, daß die Universität es einem so beibringt, ist kein Argument. Ich hatte auch schon einige miserable Dozenten.)
--Mulk 18:47, 14. Apr. 2008 (CEST)Beantworten

Lieber Mulk, lieber Kingruedi, um nicht dumm bei Common LISP Programmiersprache ja/nein zu verbleiben: Es ist keine Programmiersprache, trotzdem sehen es ohne Zweifel viele als hilfreich an (als bedeutend hilfreicher als meine Information), dass "Common Lisp eine moderne, objektorientierte Programmiersprache ist". Korrekterweise müßte man diese Information so formuieren, das MAN in Lisp PROGRAMMIERT, WENN.....

Und zwar nicht, wenn man "modern" und "objektorientiert" programmieren möchte. Wichtiger wäre eventuell anfänglich darüber zu schreiben, wann man in LISP programmiertE, wie sich das wandelte und wann man heute noch in Lisp programmieren kann.

Oder?

Thomas Stauß

Wieso? Forderst Du dasselbe für C? Für Java? Wenn nicht, warum nicht? Wo liegt der fundamentale Unterschied? --Mulk 18:47, 14. Apr. 2008 (CEST)Beantworten

So oder so -- ich weiß nicht, ob ich hier weiter mitwirken werde, nachdem all meine Beiträge inklusive einiger ganzer Abschnitte über das, was CL von anderen Sprachen unterscheidet, einfach so von irgendwem gelöscht wurden. Stelle ich eben stattdessen meine eigene Beschreibung von Common Lisp irgendwo ins Web, und die Wikipedia behält ihre irreführende, weil lächerlich unvollständige Charakterisierung einer kommerziell unterstützten, praktischen, modernen, objektorientierten Sprache. --Mulk 18:47, 14. Apr. 2008 (CEST)Beantworten

CLOS als Macros? Bearbeiten

Das Thema taucht öfters mal auf. Deswegen eine kleine Erläuterung.

CLOS lässt sich nicht als Menge Macros implementieren. CLOS lässt sich auch nicht portabel in Common Lisp implementieren.

CLOS bietet Klassen (ein neuer Datentyp), Generische Funktionen (noch ein neuer Datentyp), Objekte (Instanzen von Klassen), Methoden und noch ein paar andere Erweiterungen. CLOS ist auch in das Typ-System eingebettet. Somit müssen diverse Erweiterungen vorgenommen werden, für die es in Common Lisp (z.B. CLtL1) keine Schnittstellen gibt.

Die erste CLOS-Implementation war PCL (Portable Common Loops). PCL besteht aus umfangreichen Erweiterungen zu Common Lisp (Datentypen, Funktionen, Klassen, Macros, ...) und einem implementationsspezifischen Teil. Eine Besonderheit von CLOS sind z.B. die Generischen Funktionen. Diese sind Funktionen (können also z.B. von FUNCALL aufgerufen werden, die Funktion FUNCTIONP liefert T für eine Generische Funktion) und Objekte gleichzeitig. D.h. Generische Funktionen sind Instanzen einer CLOS-Klassen und Funktionen. So etwas konnte man mit 'Bordmitteln' nicht bauen und dafür brauchte man für jede Implementation spezielle Anpassungen.

Die Macros bilden nur einen kleinen Teil von CLOS und sind eigentlich nur die Benutzungsschnittstelle für Programmierer. Es gibt aber noch eine andere Schnittstelle: das Meta-Objekt Protokoll (kurz MOP) - von vielen Common-Lisp-Implementationen utnerstützt.

Der Kern von CLOS, und das ist besonders, ist eine Menge von Klassen und generischen Funktionen. D.h., CLOS basiert auf CLOS.

PCL implementiert ein einfaches Basis-CLOS und biegt das dann schrittweise so um, bis CLOS auf sich selbst basiert.

O.K.. Die jüngste Formulierung ist allerdings insofern ebenfalls unglücklich, daß sie den Eindruck erweckt, CLOS sei zwangsläufig metazirkulär definiert. Hab mal versucht, das abzuschwächen.
Die Einbettung in das Typensystem ist in ANSI Common Lisp eigentlich ja kein Problem, oder? Immerhin gibt es DEFTYPE. Auch neue Datenstrukturen lassen sich definieren. Die Sache mit FUNCALL stimmt aber natürlich, und Dinge wie PRINT-OBJECT kann man auch nicht einfach so in die Sprache neu einbauen. Stellt sich allerdings die Frage, was man mit einer solchen Reimplementierung von CLOS in CL überhaupt meint, denn die Objekte mit Standardnamen lassen sich sowieso nicht portabel ersetzen. Wenn man sein eigenes CLOS implementieren möchte, muß man folglich ein neues Paket erstellen, und dann kann man auch genauso gut FUNCALL dort neu definieren...
Ursprünglich war CLOS in dem Abschnitt ohnehin nur als naheliegendes Beispiel für den Nutzen von Makros gemeint. Wenn jemandem ein besseres Beispiel einfällt, darf er CLOS gerne ganz aus dem Abschnitt verbannen, wenn es nach mir geht. :) --Mulk 22:52, 17. Nov. 2007 (CET)Beantworten
In ANSI CL sind diverse Dinge definiert, die CLOS betreffen - z.B. wie Objekte initialisiert werden, wie Methoden kombiniert werden, das es Meta-Klassen gibt, etc. Die Objekt-Initialisierung wird über Generische Funktionen gesteuert. Somit ist dieser Teilmechanismus in CLOS selbst definiert.
Bzgl. Makros und CLOS. DEFGENERIC ist ein Makro in ANSI CL. In ANSI CL wird definiert, das DEFGENERIC die Generische Funktion ENSURE-GENERIC-FUNCTION benutzt. Das zeigt erstens, dass das Macro eine interne Implementation aufruft (also nicht selbst diese ist) und zweitens, dass das Definieren von Generischen Funktionen eben über eine solche passiert. Wenn das nicht Meta-Zirkulär ist????
Das Typsystem ist insofern ein Problem, dass die Typhierarchie nicht ohne interne Eingriffe implementiert werden kann. Neue primitive Typen sind nicht definierbar. Gemeint war mit der Reimplementierung, die Einbettung von CLOS in ein CLtL1 CLOS. Analog könnte man heute ein neues Objektsystem definieren und das in Common Lisp versuchen einzubauen. Die gleichen Probleme treten auf. Z.B., eine neue Metaklasse zu definieren, die anders ist als bei Strukturen und CLOS-Klassen - das geht nicht ohne interne Eingriffe.

Bearbeiten

Ich finde es ein bisschen komisch, dass hier auf der Wikipedia-Seite nicht das offizielle clisp-logo zu sehen ist, stattdessen so ein seltsames grünes Monster. Kann mir jemand erklären, warum nicht einfach der siebenarmige Leuchter verwendet wird? Am Anfang fand ich das auch ein bisschen seltsam, dass da ein offensichtlich religiöses Symbol verwendet wird, aber auf der offiziellen clisp-Seite wurde das ganz gut erklärt, warum die Menorah. http://www.clisp.org/impnotes/faq.html#faq-menorah-why Könnte mir also einer erklären, warum die hier nicht auftaucht? Liebe Grüße --Pia Francesca (Diskussion) 20:23, 8. Jun. 2014 (CEST)Beantworten

Vermutlich und unter anderem deshalb, weil dieser Artikel eben Common Lisp (die Programmiersprache) behandelt und es nicht unbedingt auf der Hand liegt, warum er für das Logo einer beliebigen ihrer zahlreichen Implementierungen herhalten sollte. Möchtest du das Logo einbauen, bietet sich dafür doch viel eher CLISPs eigener Artikel an, meinst du nicht? Dagegen hätte sicher niemand etwas. Hier aber vermiss ich es so wenig, wie das VW-Logo im Artikel Automobil.
Das grüne Monster soll übrigens ein Alien darstellen, es entspringt m.W. einem Lisp-Buchcover (Land of Lisp) u. es ist inoffiziell, wie da ja steht, da Common Lisp als solches nun mal kein Logo hat. Ein bisschen Farbe tut Artikeln wie diesem doch aber keinen Abbruch. ;) -ZT (Diskussion) 21:42, 8. Jun. 2014 (CEST)Beantworten