CommonObjects
Alan Snyder · ACM SIGPLAN Notices · 1986
CommonObjects is an extension to Common Lisp that provides efficient support for object-oriented programming in the objectcentered style of Smalltalk and Flavors.CommonObjects differs from other similar languages by providing greater support for encapsulation, particularly with respect to inheritance.In Commonobjects, access by a method to an inherited component of an object is mediated by the external interface of the defining class.Other features of CommonObjects include dynamic class redefinition using multiple coexisting versions and customizable hierarchical object initialization.In this paper, we give an overview of the CommonObjects language, describe its major features, and compare it with other object-oriented languages.Particular attention is paid to encapsulation and its effects on inheritance.We describe an implementation strategy that is simple and efficient on conventional architectures, and review the nonstandard language features required for a good portable implementation.We summarize our experience using Commonobjects and suggest directions for future research.