Concepts of Programming Languages

(Sean Pound) #1

86 Chapter 2 Evolution of the Major Programming Languages


the LOGO experience of Seymour Papert, in which graphics were used to aid
children in the use of computers (Papert, 1980).
Kay originally envisioned a system he called Dynabook, which was meant
to be a general information processor. It was based in part on the Flex language,
which he had helped design. Flex was based primarily on SIMULA 67. Dynabook
used the paradigm of the typical desk, on which there are a number of papers,
some partially covered. The top sheet is often the focus of attention, with the oth-
ers temporarily out of focus. The display of Dynabook would model this scene,
using screen windows to represent various sheets of paper on the desktop. The
user would interact with such a display both through keystrokes and by touch-
ing the screen with his or her fingers. After the preliminary design of Dynabook
earned him a Ph.D., Kay’s goal became to see such a machine constructed.
Kay found his way to the Xerox Palo Alto Research Center (Xerox PARC)
and presented his ideas on Dynabook. This led to his employment there and the
subsequent birth of the Learning Research Group at Xerox. The first charge of
the group was to design a language to support Kay’s programming paradigm
and implement it on the best personal computer then available. These efforts
resulted in an “Interim” Dynabook, consisting of a Xerox Alto workstation
and Smalltalk-72 software. Together, they formed a research tool for further
development. A number of research projects were conducted with this system,
including several experiments to teach programming to children. Along with
the experiments came further developments, leading to a sequence of languages
that ended with Smalltalk-80. As the language grew, so did the power of the
hardware on which it resided. By 1980, both the language and the Xerox hard-
ware nearly matched the early vision of Alan Kay.

2.15.2 Language Overview


The Smalltalk world is populated by nothing but objects, from integer con-
stants to large complex software systems. All computing in Smalltalk is done
by the same uniform technique: sending a message to an object to invoke one
of its methods. A reply to a message is an object, which either returns the
requested information or simply notifies the sender that the requested process-
ing has been completed. The fundamental difference between a message and a
subprogram call is this: A message is sent to a data object, specifically to one of
the methods defined for the object. The called method is then executed, often
modifying the data of the object to which the message was sent; a subprogram
call is a message to the code of a subprogram. Usually the data to be processed
by the subprogram is sent to it as a parameter.^13
In Smalltalk, object abstractions are classes, which are very similar to the
classes of SIMULA 67. Instances of the class can be created and are then the
objects of the program.
The syntax of Smalltalk is unlike that of most other programming lan-
guage, in large part because of the use of messages, rather than arithmetic and


  1. Of course, a method call can also pass data to be processed by the called method.

Free download pdf