CLOStrophobia: its etiology and treatment
- 1 October 1991
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN OOPS Messenger
- Vol. 2 (4) , 4-15
- https://doi.org/10.1145/126983.126984
Abstract
The Common Lisp Object System (CLOS) has received some praise and some criticism, both deserved. One of the most controversial features of standard CLOS is its linearly-ordered "class precedence list", which is used to linearly order the execution of its "combination" methods. In addition to the problems already known regarding the linear ordering of superclasses, we show that the standard CLOS class precedence ordering produces gratuitously complex and non-intuitive behavior. We then show that a slight modification of the standard ordering rules produces a linear ordering which can achieve most of the goals of CLOS more efficiently, and without impacting most programs. We describe a subset of CLOS called Static CLOS which preserves much of the praise due CLOS, while eliminating some of the criticism. Static CLOS is tuned for delivery of debugged code, rather than for prototype development. This "delivery" CLOS determines as many methods as possible at compile-time using "type inference" techniques. While these techniques generally result in faster-executing code, the space requirements can grow quite large. We argue that this space explosion can be partially ameliorated through the use of our modified class precedence ordering.Keywords
This publication has 51 references indexed in Scilit:
- A theory of type polymorphism in programmingPublished by Elsevier ,2003
- A decision procedure for common Lisp'sSUBTYPEP predicateHigher-Order and Symbolic Computation, 1992
- Structured programming with limited private types in AdaACM SIGAda Ada Letters, 1991
- QUICKTALK: a Smalltalk-80 dialect for defining primitive methodsACM SIGPLAN Notices, 1986
- A third generation Smalltalk-80 implementationACM SIGPLAN Notices, 1986
- SOAR: Smalltalk without bytecodesACM SIGPLAN Notices, 1986
- Oaklisp: an object-oriented scheme with first class typesACM SIGPLAN Notices, 1986
- CommonLoops: merging Lisp and object-oriented programmingACM SIGPLAN Notices, 1986
- A Scheme for the Automatic Inference of Variable TypesJournal of the ACM, 1980
- Optimization of very high level languages—I: Value transmission and its corollariesComputer Languages, 1975