Skip to content

This website works best using cookies which are currently disabled.Cookie policy  Allow cookies
United States of America (English) Change
 

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 . 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].

Smalltalk Related Courses

Complete Ruby Training
99293 | Intertech

Ruby is an object-oriented programming language that is capturing the attention of developers looking to make improvements in productivity while More...

Smalltalk Related Jobs

Senior Software Engineer
Plymouth MN

Title: Senior Software Engineer ID: TEC00027336 Description POSITION SUMMARY The Sr. Software Developer is responsible for implementing More...

Senior Developer
Eagan MN

Title: S enior Developer ID: TEC00027327 Description Sr. Developer Governance, Risk & Compliance is a fast-growing Thomson Reuters More...

Senior Developer
Eagan MN

Title: Sr. Developer ID: TEC00027326 Description Sr. Developer Governance, Risk & Compliance is a fast-growing Thomson Reuters business. It More...

Ruby On Rails Developer
Chantilly VA

Ruby On Rails Developer (Job Number:325311) Description: SAIC's Cyber Security Group has a career opening for a Senior Ruby On Rails More...

Software Engineer
Chantilly VA

Software Engineer (Job Number:323820) Description: SAIC's Cybersecurity Business Unit has a career opening for a Senior Software Engineer More...