Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
Self is a dynamic object-oriented
language and programming environment
based on an object prototypes a
general message-passing model. It
was designed to be small, very flexible,
and easy to use.
An object, in Self, consists of several
named slots. Each slot can be a data
slot or a method slot, there is no
fundamental distinction between them.
Slots can hold integers, reals,
strings, methods, code blocks,
and references to other objects.
Aggregate data types of all kinds
are provided by prototype objects in
the Self standard library. The
library also provides a great many
prototypes for graphics, windowing,
I/O, networking, and other services.
Self supports the usual selection and
iteration control flow constructs for
use inside methods and blocks. Their
syntax is a little peculiar because
they are built as methods of the
object prototype 'Block'.
Self is very unusual, among OOP languages,
because it allows an object to change
its slots and its methods dynamically; this
is equivalent to allowing run-time class
There is no strict inheritance in Self;
the parent class of an object is simply
a reference stored in a parent
slot, messages that cannot be handled
by an object get delegated to its
parent (effectively, its superclass).
Self also fully supports reflection,
allowing objects to inspect each others
configuration during execution.
The Sun implementation of Self is written
in C with some assembly code. It is
basically an on-the-fly translator
with compiled code caching. Since
re-compilation is transparent, Self
appears to the user as if it were
The current (and last) release of
Sun Labs Self is 4.0. It is available
for SunOS and Solaris UNIX from several
FTP sites. The Merlin project is
implementing a version of Self for Linux.
Documentation about Self, including
conference papers and a reference
manual, are available on the web.
David Ungar & Randall Smith, 1986.
- See Also:
Computer science researchers at Sun Microsystems
Labs and Stanford University
worked on the Self programming environment
from about 1991 to 1995. It served as a
vehicle for studying user interfaces,
OOP compiler and interpreter technology,
and general OO language concepts.
Self is an elegant and charming OOP
system, but the very limited support
availability that Sun Labs could offer
helped to deter widespread adoption.
Self's highly dynamic and flexible
object model could be used to emulate
the object models of other language.
For example, the Sun team wrote a
Smalltalk environment entirely in Self.
- Sample code:
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.