Common Lisp Object System

In the late 1980s, a group of us designed CLOS. We were very careful about language and insisted that all reproductions of the specification be verbatim. The specification was divded into conceptual material (Concepts [pdf]) and the specification of macros, functions, and classes (Functions [pdf]).

The specification was published in the journal Lisp and Symbolic Computation (LASC) in Volume 1, Numbers 3-4. The introduction to that double issue was as follows:

This double issue features the Common Lisp Object System, which was formally accepted by X3J13 in June 1988. LaSC is reprinting the specification in an effort to broadly distribute the specification for public comment.
The Common Lisp Object System is unlike some other object-oriented languages in that it supports multiple inheritance, generic functions, method combination, and a meta-object protocol. We believe that it represents a significant advance in object-oriented languages because it blends traditional object-oriented features with the Lisp notion of first-class objects.
In this issue is a companion overview of the Object System written by Linda DeMichiel, one of the authors of the specification. It should be read by people unfamiliar with Lisp-based object-oriented languages or by people who do not wish to read the full specification.

The Common Lisp Object System: An Overview [pdf]

This overview of CLOS was written with Linda DeMichiel and published at ECOOP in 1987. I think it's a pretty good introduction to CLOS ideas.

Common Lisp Object System [pdf]

Linda and I also wrote this overview for OOPSLA, but it was rejected because it was considered too similar to the ECOOP paper above.

CLOS: Integrating Object-Oriented and Functional Programming [pdf]

Jonl White, Danny Bobrow, and I wrote this overview of CLOS for CACM in 1991.

CLOS in Context: The Shape of the Design Space [pdf]

Danny Bobrow, Jonl White, and I wrote this for the book, "Object-Oriented Programming: The CLOS Perspective," by Andreas Paepcke, Editor, MIT Press, 1992.