Skip to main content
Log in

Organizing programs without classes

  • Published:
LISP and Symbolic Computation

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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).

    Google Scholar 

  2. Borning, A. H. Classes Versus Prototypes in Object-Oriented Languages. InProceedings of the ACM/IEEE Fall Joint Computer Conference (1986) 36–40.

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. Goldberg, A.Smalltalk-80: The Interactive Programming Environment. Addison-Wesley, Reading, MA (1984).

    Google Scholar 

  7. Goldberg, A., and Robson, D.Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA (1983).

    Google Scholar 

  8. LaLonde, W. R. Designing Families of Data Types Using Exemplars. InACM Transactions on Programming Languages and Systems, 11, 2 (1989) 212–248.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. Lee, E.Object Storage and Inheritance for SELF, a Prototype-Based Object-Oriented Programming Language. Engineer's thesis, Stanford University (1988).

  11. 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.

    Google Scholar 

  12. 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).

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Stein, L. A. Delegation Is Inheritance. InOOPSLA '87 Conference Proceedings. Published asSIGPLAN Notices, 22, 12 (1987) 138–146.

    Google Scholar 

  15. 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).

    Google Scholar 

  16. Stroustrup, B.The C++ Programming Language. Addison-Wesley, Reading, MA (1986).

    Google Scholar 

  17. Stroustrup, B. The Evolution of C++: 1985 to 1987. InUSENIX C++ Workshop Proceedings (1987) 1–21.

  18. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

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

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01806107

Keywords

Navigation