Microsoft's "Squeak Language" Research

Peter William Lount peter at ActiveInfo.CA
Mon Jan 26 04:34:02 UTC 2004

Squeak: a Language for Communicating with Mice

"Graphical user interfaces are difficult to implement because of the
concurrency among multiple interaction devices, such as mice, buttons, and
keyboards. Squeak is a user interface implementation language that exploits
this concurrency rather than hiding it, helping the programmer to express
interactions using multiple devices. We present the motivation, design and
semantics of squeak . The language is based on concurrent programming
but can be compiled into a conventional sequential language; our
generates C code. We discuss how squeak programs can be
integrated into a graphics system written in a conventional language to
large but regular user interfaces, and close with a description of the


"Squeak is a concurrent language for specifying interactive user interfaces.
It can express
complex time-dependent interfaces in a compact notation. Although squeak
could be developed
into a full-blown language, we use it to express subroutines which are then
integrated in larger
programs written in a conventional sequential language (C).

The integration of concurrent subsystems in sequential programs is achieved
by compiling
concurrency into sequential code whose execution is controlled by the
sequencing of external
device events. It is interesting that in the restricted domain of squeak
programs, the context
switches between concurrent processes can be compiled out.

The real-time behavior of squeak is subtle, and we have found it helpful to
express the
language's semantics formally, using the methods of operational semantics."


This alternate reality conception of "squeak" may actually have some
relevancy to Squeak Smalltalk in the area of creating powerful user

All the best,

peter at

More information about the Squeak-dev mailing list