Abstract
All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single model—dividing types into prototypes and traits—supports sharing of behavior and extending or replacing representations. A natural extension, dynamic object inheritance, can model behavioral modes. Object inheritance can also be used to provide structured name spaces for well-known objects. Classless languages can even express “class-based” encapsulation. These stylized uses of object inheritance become instantly recognizable idioms, and extend the repertory of organizing principles to cover a wider range of programs.
Similar content being viewed by others
References
Bobrow, D. G., DeMichiel, L. G., Gabriel, R. P., Keene, S. E., Kiczales, G., and Moon, D. A. Common Lisp Object System Specification. Published asSIGPLAN Notices, 23, 9 (1988).
Borning, A. H. Classes Versus Prototypes in Object-Oriented Languages. InProceedings of the ACM/IEEE Fall Joint Computer Conference (1986) 36–40.
Chambers, C., and Ungar, D. Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Programming Language. InProceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation. Published asSIGPLAN Notices, 24, 7 (1989) 146–160.
Chambers, C., Ungar, D., and Lee, E. An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes. InOOPSLA '89 Conference Proceedings. Published asSIGPLAN Notices, 24, 10 (1989) 49–70. Also inLisp and Symbolic Computation, 4, 3 (1991) 243–281.
Chambers, C., Ungar, D., Chang, B., and Hölzle, U. Parents are Shared Parts of Objects: Inheritance and Encapsulation in SELF. InLisp and Symbolic Computation, 4, 3 (1991) 207–222.
Goldberg, A.Smalltalk-80: The Interactive Programming Environment. Addison-Wesley, Reading, MA (1984).
Goldberg, A., and Robson, D.Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA (1983).
LaLonde, W. R. Designing Families of Data Types Using Exemplars. InACM Transactions on Programming Languages and Systems, 11, 2 (1989) 212–248.
LaLonde, W. R., Thomas, D. A., and Pugh, J. R. An Exemplar Based Smalltalk. InOOPSLA '86 Conference Proceedings. Published asSIGPLAN Notices, 21, 11 (1986) 322–330.
Lee, E.Object Storage and Inheritance for SELF, a Prototype-Based Object-Oriented Programming Language. Engineer's thesis, Stanford University (1988).
Lieberman, H. Using Prototypical Objects to Implement Shared Behavior in Object-Oriented Systems. InOOPSLA '86 Conference Proceedings. Published asSIGPLAN Notices, 21, 11 (1986) 214–223.
Schaffert, C., Cooper, T., and Wilpolt, C.Trellis Object-Based Environment: Language Reference Manual, Version 1.1. DEC-TR-372, Digital Equipment Corp., Hudson, MA (1985).
Schaffert, C., Cooper, T., Bullis, B., Kilian, M., and Wilpolt, C. An Introduction to Trellis/Owl. InOOPSLA '86 Conference Proceedings. Published asSIGPLAN Notices, 21, 11 (1986) 9–16.
Stein, L. A. Delegation Is Inheritance. InOOPSLA '87 Conference Proceedings. Published asSIGPLAN Notices, 22, 12 (1987) 138–146.
Stein, L. A., Lieberman, H., and Ungar, D. A Shared View of Sharing: The Treaty of Orlando. In Kim, W., and Lochovosky, F., editors,Object-Oriented Concepts, Applications, and Databases, Addison-Wesley, Reading, MA (1988).
Stroustrup, B.The C++ Programming Language. Addison-Wesley, Reading, MA (1986).
Stroustrup, B. The Evolution of C++: 1985 to 1987. InUSENIX C++ Workshop Proceedings (1987) 1–21.
Ungar, D., and Smith, R. B. SELF: The Power of Simplicity. InOOPSLA '87 Conference Proceedings. Published asSIGPLAN Notices, 22, 12 (1987) 227–241. Also inLisp and Symbolic Computation, 4, 3 (1991) 187–205.
Author information
Authors and Affiliations
Additional information
This work has been generously supported by National Science Foundation Presidential Young Investigator Grant # CCR-8657631, and by Sun Microsystems, IBM, Apple Computer, Cray Laboratories, Tandem Computers, NCR, Texas Instruments, and DEC.
Rights and permissions
About this article
Cite this article
Ungar, D., Chambers, C., Chang, BW. et al. Organizing programs without classes. Lisp and Symbolic Computation 4, 223–242 (1991). https://doi.org/10.1007/BF01806107
Issue Date:
DOI: https://doi.org/10.1007/BF01806107