Self: The Power of Simplicity
David Ungar
and
Randall B. Smith
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.
OOPSLA '87 Conference Proceedings, pp. 227-241, Orlando, FL, October,
1987.
Published as SIGPLAN Notices 22(12), December, 1987.
Also published in Lisp and Symbolic Computation 4(3), Kluwer Academic
Publishers, June, 1991.
To get the PostScript file, click
here.
Back to bibliography