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
Similar content being viewed by others
References
Abelson, H., Sussman, G. J., and Sussman, J.Structure and Interpretation of Computer Programs, MIT Press (1984).
Borning, A. H.ThingLab—A Constraint-Oriented Simulation Laboratory. Ph.D. dissertation, Stanford University (1979).
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.
Borning, A. H. Classes Versus Prototypes in Object-Oriented Languages. InProceedings of the ACM/IEEE Fall Joint Computer Conference (1986) 36–40.
Borning, A., and O'Shea, T. DeltaTalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80™ Language. Unpublished manuscript (1986).
Goldberg, A., and Robson, D.Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA (1983).
Hewitt, C., and Agha, G. ACTORS: A Conceptual Foundation For Concurrent Object-Oriented Programming. Unpublished draft, MIT Artificial Intelligence Laboratory (1987).
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.
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.
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.
Rochat, R. In Search of Good Smalltalk Programming Style. Technical Report No. CR-86-19, Computer Research Laboratory, Tektronix Laboratories, Beaverton, OR (1986).
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.
Sheil, B. Power Tools for Programmers.Datamation, 29, 2 (1983) 131–144.
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.
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.
Smith, R. G. Strobe: Support for Structured Object Knowledge Representation. InProceedings of the 1983 International Joint Conference on Artificial Intelligence (1983) 855–858.
Steele, G. L., Jr. Lambda, the Ultimate Imperative. AI Memo 353, MIT Artificial Intelligence Laboratory (1976).
Stefik, M., Bobrow, D., and Kahn, K. Integrating Access-Oriented Programming into a Multiprogramming Environment.IEEE Software Magazine, 3, 1 (1986) 10–18.
Ungar, D., Chambers, C., Chang, B., and Hölzle, U. Organizing Programs Without Classes. InLisp and Symbolic Computation, 4, 3 (1991) 223–242.
Ungar, D., and Smith, R. B. SELF: The Power of Simplicity. InOOPSLA '87 Conference Proceedings. Published asSIGPLAN Notices, 22, 12 (1987) 227–241.
Author information
Authors and Affiliations
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
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
Issue Date:
DOI: https://doi.org/10.1007/BF01806105