Skip to main content
Log in

SELF: The power of simplicity

  • Published:
LISP and Symbolic Computation

Abstract

SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages. Slots unite variables and procedures into a single construct. This permits the inheritance hierarchy to take over the function of lexical scoping in conventional languages. Finally, because SELF does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures. SELF's simplicity and expressiveness offer new insights into object-oriented computation.

To thine own self be true. — William Shakespeare laggy

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. Abelson, H., Sussman, G. J., and Sussman, J.Structure and Interpretation of Computer Programs, MIT Press (1984).

  2. Borning, A. H.ThingLab—A Constraint-Oriented Simulation Laboratory. Ph.D. dissertation, Stanford University (1979).

  3. Borning, A. H. The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory. InACM Transactions on Programming Languages and Systems, 3, 4 (1981) 353–387.

    Google Scholar 

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

  5. Borning, A., and O'Shea, T. DeltaTalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80™ Language. Unpublished manuscript (1986).

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

    Google Scholar 

  7. Hewitt, C., and Agha, G. ACTORS: A Conceptual Foundation For Concurrent Object-Oriented Programming. Unpublished draft, MIT Artificial Intelligence Laboratory (1987).

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

  9. Lang, K. J., and Pearlmutter, B. A. Oaklisp: An Object-Oriented Scheme with First Class Types. InOOPSLA '86 Conference Proceedings. Published asSIGPLAN Notices, 21, 11 (1986) 30–37.

    Google Scholar 

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

  11. Rochat, R. In Search of Good Smalltalk Programming Style. Technical Report No. CR-86-19, Computer Research Laboratory, Tektronix Laboratories, Beaverton, OR (1986).

    Google Scholar 

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

  13. Sheil, B. Power Tools for Programmers.Datamation, 29, 2 (1983) 131–144.

    Google Scholar 

  14. Smith, R. B. The Alternate Reality Kit: An Animated Environment for Creating Interactive Simulations. InProceedings of 1986 IEEE Computer Society Workshop on Visual Languages (1986) 99–106.

  15. Smith, R. B. Experiences with the Alternate Reality Kit: An Example of the Tension Between Literalism and Magic. InProceedings of the CHI+GI '87 Conference (1987) 61–67.

  16. Smith, R. G. Strobe: Support for Structured Object Knowledge Representation. InProceedings of the 1983 International Joint Conference on Artificial Intelligence (1983) 855–858.

  17. Steele, G. L., Jr. Lambda, the Ultimate Imperative. AI Memo 353, MIT Artificial Intelligence Laboratory (1976).

  18. Stefik, M., Bobrow, D., and Kahn, K. Integrating Access-Oriented Programming into a Multiprogramming Environment.IEEE Software Magazine, 3, 1 (1986) 10–18.

    Google Scholar 

  19. Ungar, D., Chambers, C., Chang, B., and Hölzle, U. Organizing Programs Without Classes. InLisp and Symbolic Computation, 4, 3 (1991) 223–242.

    Google Scholar 

  20. Ungar, D., and Smith, R. B. SELF: The Power of Simplicity. InOOPSLA '87 Conference Proceedings. Published asSIGPLAN Notices, 22, 12 (1987) 227–241.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work is partially supported by Xerox, and partially by National Science Foundation Presidential Young Investigator Grant #CCR-8657631, Sun Microsystems, the Powell Foundation, IBM, Apple Computer, DEC, NCR, Texas Instruments, and Cray Laboratories.

This paper is a substantial revision of [20], originally published inOOPSLA '87 Conference Proceedings (SIGPLAN Notices, 22, 12 (1987) 227-241).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ungar, D., Smith, R.B. SELF: The power of simplicity. Lisp and Symbolic Computation 4, 187–205 (1991). https://doi.org/10.1007/BF01806105

Download citation

  • Issue Date:

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

Keywords

Navigation