Concepts of Programming Languages

(Sean Pound) #1
another principal feature of object-oriented programming. These features of
Ada 95 are discussed in Chapter 12.
The rendezvous mechanism of Ada 83 provided only a cumbersome and
inefficient means of sharing data among concurrent processes. It was necessary
to introduce a new task to control access to the shared data. The protected
objects of Ada 95 offer an attractive alternative to this. The shared data is
encapsulated in a syntactic structure that controls all access to the data, either
by rendezvous or by subprogram call. The new features of Ada 95 for concur-
rency and shared data are discussed in Chapter 13.
It is widely believed that the popularity of Ada 95 suffered because
the Department of Defense stopped requiring its use in military software
systems. There were, of course, other factors that hindered its growth in
popularity. Most important among these was the widespread acceptance of
C++ for object-oriented programming, which occurred before Ada 95 was
released.
There were several additions to Ada 95 to get Ada 2005. Among these were
interfaces, similar to those of Java, more control of scheduling algorithms, and
synchronized interfaces.
Ada is widely used in both commercial and defense avionics, air traffic
control, and rail transportation, as well as in other areas.

2.15 Object-Oriented Programming: Smalltalk


Smalltalk was the first programming language that fully supported object-
oriented programming. It is therefore an important part of any discussion of
the evolution of programming languages.

2.15.1 Design Process


The concepts that led to the development of Smalltalk originated in the Ph.D.
dissertation work of Alan Kay in the late 1960s at the University of Utah (Kay,
1969). Kay had the remarkable foresight to predict the future availability of
powerful desktop computers. Recall that the first microcomputer systems
were not marketed until the mid-1970s, and they were only remotely related
to the machines envisioned by Kay, which were seen to execute a million or
more instructions per second and contain several megabytes of memory. Such
machines, in the form of workstations, became widely available only in the
early 1980s.
Kay believed that desktop computers would be used by nonprogrammers
and thus would need very powerful human-interfacing capabilities. The com-
puters of the late 1960s were largely batch oriented and were used exclusively
by professional programmers and scientists. For use by nonprogrammers, Kay
determined, a computer would have to be highly interactive and use sophisti-
cated graphics in its user interface. Some of the graphics concepts came from

2.15 Object-Oriented Programming: Smalltalk 85
Free download pdf