CommonLoops(ID:1208/com016)


Bobrow and Kizcales Xerox PARC.

An object-oriented LISP. Led to CLOS.


People:
Structures:
Related languages
LOOPS => CommonLoops   Evolution of
CommonLoops => CLOS   Evolution of
CommonLoops => PCL   Subset

References:
  • Bobrow, Daniel G.; Kahn, Kenneth, Kiczales, Gregor; Masinter, Larry; Stefik, Mark; Zdybel, Frank "CommonLoops: Merging Lisp and Object-Oriented Programming" pp17-29 view details Abstract: CommonLoops blends object-oriented programming smoothly and tightly with the procedure-oriented design of Lisp. Functions and methods are combined in a more general abstraction. Message passing is invoked via normal Lisp function call. Methods are viewed as partial descriptions of procedures. Lisp data types are integrated with object classes. With these integrations, it is easy to incrementally move a program between the procedure and object-oriented styles.One of the most important properties of CommonLoops is its extensive use of meta-objects. We discuss three kinds of meta-objects: objects for classes, objects for methods, and objects for discriminators. We argue that these meta-objects make practical both efficient implementation and experimentation with new ideas for object-oriented programming.CommonLoops' small kernel is powerful enough to implement the major object-oriented systems in use today.
          in SIGPLAN Notices 21(11) November 1986 (OOPSLA - Conference on Object Oriented Programming Systems Languages and Applications 1986) view details
  • Kempf, James; Harris, Warren; D'Souza, Roy; Snyder, Alan "Experience with CommonLoops" view details Abstract: CommonLoops blends object-oriented programming smoothly and tightly with the procedure-oriented design of Lisp. Functions and methods are combined in a more general abstraction. Message passing is invoked via normal Lisp function call. Methods are viewed as partial descriptions of procedures. Lisp data types are integrated with object classes. With these integrations, it is easy to incrementally move a program between the procedure and object-oriented styles.One of the most important properties of CommonLoops is its extensive use of meta-objects. We discuss three kinds of meta-objects: objects for classes, objects for methods, and objects for discriminators. We argue that these meta-objects make practical both efficient implementation and experimentation with new ideas for object-oriented programming.CommonLoops' small kernel is powerful enough to implement the major object-oriented systems in use today. Abstract: CommonLoops is an object-oriented language embedded in Common Lisp. It is one of two such languages selected as starting points for the Common Lisp Object System (CLOS) which is currently being designed as a standard object-oriented extension to Common Lisp. This paper reports on experiences using the existing Portable CommonLoops (PCL) implementation of CommonLoops. The paper is divided into two parts: a report on the development of a window system application using the CommonLoops programming language, and a description of the implementation of another object-oriented language (CommonObjects) on top of the CommonLoops metaclass kernel, paralleling the two aspects of CommonLoops: the programming language and the metaclass kernel. Usage of the novel features in CommonLoops is measured quantitatively, and performance figures comparing CommonLoops, CommonObjects on CommonLoops, and the native Lisp implementation of CommonObjects are presented. The paper concludes with a discussion about the importance of quantitative assessment for programming language development.

          in SIGPLAN Notices 22(12) December 1987 (OOPSLA '87) view details