Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Self: The power of simplicity

Published: 01 December 1987 Publication History

Abstract

Self is a new 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.

References

[1]
H. Abelson, G. J. Sussman and J. Sussman, Structure and Interpretation of Computer Programs, MIT Press, 1984.
[2]
A. Boming, "ThingLab--A Constraint- Oriented Simulation Laboratory," Ph.D. dissertation, Stanford University, March 1979.
[3]
A.H. Borning, "The Programming Language Aspects of ThingLab, A Constraint- Oriented Simulation Laboratory," ACM Transactions on Programming Languages and Systems 3,4 (October 1981), 353-387.
[4]
A. Boming and T. O'Shea, "DeltaTalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80TM Language," unpublished, 1986.
[5]
A. Boming, "Classes versus Prototypes in Object-Oriented Languages," Proceexlings of the ACM / IEEE Fall Joint Computer Conference, Dallas, TX, November, 1986, 36-40.
[6]
A. J. Goldberg and D. Robson, Smalltalk--80rM: The Language and Its Implementation, Addison-Wesley Publishing Company, Reading, MA, 1983.
[7]
C. Hewitt and G. Agha, "ACTORS: A Conceptual Foundation For Concurrent Object-Oriented Programming," M1T AI Lab, January 2 I, 1987. Unpublished draft.
[8]
W.R. LaLonde, D. A. Thomas and J. R. Pugh, "An Exemplar Based Smalltalk," OOPSLA'86 Conference Proceedings, Portland, OR, 1986, 322-330. Also published as a special issue of SIGPLAN Notices Vol. 21, No. 11, Nov. 86.
[9]
K. J. Lang and B. A. Pearlmutter, "Oaklisp: An Object-Oriented Scheme with First Class Types," OOPSLA'86 Conference Proceedings, Portland, OR, 1986, 30-37. Also published as a special issue of SIGPLAN Notices Notices, Vol. 21, No. 11, Nov. 86.
[10]
H. Lieberman, "Using Prototypical Objects to Implement Shared Behavior in Object-Oriented Systems," OOPSLA'86 Conference Proceedings, Portland, OR, 1986, 214-223. Also published as a special issue of S IGPLAN Notices Notices, Vol. 21, No. 11, Nov. 86.
[11]
J. A. Rees, N. I. Adams and J. R. Meehan, The T Manual (Fourth Edition), Computer Science Dept., Yale University, New Haven, CT, 1984.
[12]
R. Rochat, "in Search of Good Smalltalk Programming Style," Technical Report No. CR-86-19, Computer Research Laboratory, Tektronix Laboratories, Beaverton, OR, 1986.
[13]
M. Stefik, D. Bobrow and K. Kahn, "Integrating Access--Oriented Programruing into a Multiprogramming Environment," IEEE Software Magazine 3, I (January 1986), 10-18.
[14]
C. Schaffert, T. Cooper, B. Bullis, M. Kilian and C. Wilpolt, "An Introduction to Trellis/Owl," OOPSLA'86 Conference Proceedings, Portland, OR, 1986, 9-16. Also published as a special issue of SIG- PLAN Notices, Vol. 21, No. 11, Nov. 86.
[15]
B. Sheil, "Environments for Exploratory Programming," Datamation, February, 1983.
[16]
R.G. Smith, "Strobe: Support for Structured Object Knowledge Representation," Proceedings of the 1983 International Joint Conference On Artificial Intelligence, 1983, 855-858.
[17]
R.B. Smith, "'The Alternate Reality Kit: An Animated Environment for Creating Interactive Simulations," Proceedings of 1986 IEEE Computer Society Workshop on Visual Languages, Dallas, TX, June, 1986, 99-106.
[18]
R. B. Smith, "Experiences with the Alternate Reality Kit: An Example of the Tension Between Literalism and Magic," To appear in ProceeAings of the CHI+GI'87 Conference, Toronto, Canada, April, 1987:
[19]
G.L. Steele Jr., "Lambda, the Ultimate Imperative," AI Memo 353, 1976.

Cited By

View all
  • (2024)MyWebstrates: Webstrates as Local-first SoftwareProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676445(1-12)Online publication date: 13-Oct-2024
  • (2023)Using Object-Sequence Diagrams for DebuggingProceedings of the 1st ACM International Workshop on Future Debugging Techniques10.1145/3605155.3605864(11-22)Online publication date: 17-Jul-2023
  • (2023)Clerk: Moldable Live Programming for ClojureCompanion Proceedings of the 7th International Conference on the Art, Science, and Engineering of Programming10.1145/3594671.3594682(22-31)Online publication date: 13-Mar-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 1987
Published in SIGPLAN Volume 22, Issue 12

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)396
  • Downloads (Last 6 weeks)66
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)MyWebstrates: Webstrates as Local-first SoftwareProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676445(1-12)Online publication date: 13-Oct-2024
  • (2023)Using Object-Sequence Diagrams for DebuggingProceedings of the 1st ACM International Workshop on Future Debugging Techniques10.1145/3605155.3605864(11-22)Online publication date: 17-Jul-2023
  • (2023)Clerk: Moldable Live Programming for ClojureCompanion Proceedings of the 7th International Conference on the Art, Science, and Engineering of Programming10.1145/3594671.3594682(22-31)Online publication date: 13-Mar-2023
  • (2022)Formalizing ϕ-Calculus: A Purely Object-Oriented Calculus of Decorated ObjectsProceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs10.1145/3611096.3611103(29-36)Online publication date: 7-Jun-2022
  • (2022)A Language Based on Two Relations between SymbolsProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567660(95-111)Online publication date: 29-Nov-2022
  • (2020)Preserving instance state during refactorings in live environmentsFuture Generation Computer Systems10.1016/j.future.2020.04.010110(1-17)Online publication date: Sep-2020
  • (2019)A didactic object-oriented, prototype-based visual programming environmentScience of Computer Programming10.1016/j.scico.2019.02.004176(1-13)Online publication date: May-2019
  • (2019)A Multi-Paradigm Modelling approach to live modellingSoftware and Systems Modeling (SoSyM)10.1007/s10270-018-0700-718:5(2821-2842)Online publication date: 1-Oct-2019
  • (2017)The semantics of name resolution in graceACM SIGPLAN Notices10.1145/3170472.313384752:11(63-74)Online publication date: 24-Oct-2017
  • (2017)The semantics of name resolution in graceProceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages10.1145/3133841.3133847(63-74)Online publication date: 24-Oct-2017
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media