Next: , Up: Common Lisp Object system—CLOS   [Contents][Index]


10.1 CLOS History

The functionality belonging to this name [CLOS] was added to the Common Lisp language between the publication of Steele’s first edition of "Common Lisp, the Language" in 1984 and the formalization of the language as an ANSI standard ten years later.

The source material for CLOS was a report written in three chapters. The first two, consisting of "Programmer Interface Concepts" and "Functions in the Programmer Interface", will now be found as the two halves of chapter 28 in [Steele 1990] and were the basis for relevant parts of the ANSI specification when it later appeared. The third chapter, on the Metaobject protocol, was regarded (by its authors, I believe) as incomplete and never published.

The Common Lisp Object System is an object-oriented programming paradigm de- signed for Common Lisp. Over a period of twenty months, the Common Lisp Object System design group took the best ideas from CommonLoops and Flavors and combined them into a new object-oriented paradigm for Common Lisp. This combination is not simply a union: it is a new paradigm that is similar in its outward appearances to Com- monLoops and Flavors, and it has been given a firmer underlying semantic basis. The major participants in this design effort were Daniel Bobrow and Gregor Kiczales from Xerox, David Moon and Sonya Keene from Symbolics, and Richard Gabriel and Linda DeMichiel from Lucid.

The Common Lisp Object System has been proposed as a standard for ANSI Common Lisp. In 1987, the X3J13 committee endorsed an earlier, but incomplete, version of the specification, stating that it would almost certainly be adopted as part of the Common Lisp standard, and encouraged implementors to proceed with trial implementations. In June 1988, the X3J13 committee accepted the Common Lisp Object System Programmer Interface, as defined in Document 88-002R, for inclusion into the Common Lisp language being specified by X3J13. This paper is a report on the specification of the Common Lisp Object System Programmer Interface that was adopted by X3J13 in June 1988.


Next: Common Lisp Object System Specification, Up: Common Lisp Object system—CLOS   [Contents][Index]