The Free On-line Dictionary of Computing (30 December 2018):
Smalltalk
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)