smalltalk

from The Free On-line Dictionary of Computing (8 July 2008)
Smalltalk

   <language> The pioneering {object-oriented programming} system
   developed in 1972 by the Software Concepts Group, led by {Alan
   Kay}, at {Xerox PARC} between 1971 and 1983.  It includes a
   language, a programming environment, and an extensive object
   library.

   Smalltalk took the concepts of {class} and {message} from
   {Simula-67} and made them all-pervasive.  Innovations included
   the {bitmap display}, windowing system, and use of a {mouse}.

   The {syntax} is very simple.  The fundamental construction is
   to send a message to an {object}:

   	object message

   or with extra parameters

   	object message: param1 secondArg: param2 .. nthArg: paramN

   where "secondArg:" etc. are considered to be part of the
   message name.

   Five pseudo-variables are defined: "self", "super", "nil",
   "true", "false".  "self" is the receiver of the current
   message.  "super" is used to delegate processing of a message
   to the {superclass} of the receiver.  "nil" is a reference to
   "nothing" (an instance of UndefinedObject).  All variables
   initially contain a reference to nil.  "true" and "false" are
   {Booleans}.

   In Smalltalk, any message can be sent to any object.  The
   recipient object itself decides (based on the message name,
   also called the "message selector") how to respond to the
   message.  Because of that, the {multiple inheritance} system
   included in the early versions of Smalltalk-80 appeared to be
   unused in practice.  All modern implementations have single
   inheritance, so each class can have at most one superclass.

   Early implementations were {interpreted} but all modern ones
   use {dynamic translation} (JIT).

   Early versions were Smalltalk-72, Smalltalk-74, Smalltalk-76
   (inheritance taken from Simula, and concurrency), and
   Smalltalk-78, {Smalltalk-80}.  Other versions include {Little
   Smalltalk}, {Smalltalk/V}, {Kamin's interpreters}.  Current
   versions are {VisualWorks}, {Squeak}, {VisualAge}, {Dolphin
   Smalltalk}, {Object Studio}, {GNU Smalltalk}.

   See also: {International Smalltalk Association}.

   UIUC Smalltalk archive (http://st-www.cs.uiuc.edu/).
   FAQ (http://XCF.Berkeley.EDU/pub/misc/smalltalk/FAQ/).

   Usenet newsgroup: news:comp.lang.smalltalk.

   ["The Smalltalk-76 Programming System Design and
   Implementation", D.H. Ingalls, 5th POPL, ACM 1978, pp. 9-16].

   (2001-09-11)
    

[email protected]