Concepts of Programming Languages

(Sean Pound) #1
ALGOL 68. Implementation was a difficult problem for both, but PL/I had
the resources of IBM to apply to building a compiler. ALGOL 68 enjoyed no
such benefactor.

2.12 Some Early Descendants of the ALGOLs


All imperative languages owe some of their design to ALGOL 60 and/or
ALGOL 68. This section discusses some of the early descendants of these
languages.

2.12.1 Simplicity by Design: Pascal


2.12.1.1 Historical Background
Niklaus Wirth (Wirth is pronounced “Virt”) was a member of the International
Federation of Information Processing (IFIP) Working Group 2.1, which was
created to continue the development of ALGOL in the mid-1960s. In August
1965, Wirth and C. A. R. (“Tony”) Hoare contributed to that effort by present-
ing to the group a somewhat modest proposal for additions and modifications
to ALGOL 60 (Wirth and Hoare, 1966). The majority of the group rejected the
proposal as being too small an improvement over ALGOL 60. Instead, a much
more complex revision was developed, which eventually became ALGOL 68.
Wirth, along with a few other group members, did not believe that the ALGOL
68 report should have been released, based on the complexity of both the lan-
guage and the metalanguage used to describe it. This position later proved
to have some validity because the ALGOL 68 documents, and therefore the
language, were indeed found to be challenging by the computing community.
The Wirth and Hoare version of ALGOL 60 was named ALGOL-W. It
was implemented at Stanford University and was used primarily as an instruc-
tional vehicle, but only at a few universities. The primary contributions of
ALGOL-W were the value-result method of passing parameters and the case
statement for multiple selection. The value-result method is an alternative to
ALGOL 60’s pass-by-name method. Both are discussed in Chapter 9. The
case statement is discussed in Chapter 8.
Wirth’s next major design effort, again based on ALGOL 60, was his most
successful: Pascal.^10 The original published definition of Pascal appeared in
1971 (Wirth, 1971). This version was modified somewhat in the implemen-
tation process and is described in Wirth (1973). The features that are often
ascribed to Pascal in fact came from earlier languages. For example, user-
defined data types were introduced in ALGOL 68, the case statement in
ALGOL-W, and Pascal’s records are similar to those of COBOL and PL/I.


  1. Pascal is named after Blaise Pascal, a seventeenth-century French philosopher and mathema-
    tician who invented the first mechanical adding machine in 1642 (among other things).


2.12 Some Early Descendants of the ALGOLs 75
Free download pdf