THE EARLY DEVELOPMENT OF PROGRAMMING LANGUAGES
by
Donald E, Knuth
Luis Trabb Pardo
STAN-CS-76-562
AUGUST 1976
COMPUTER SCIENCE DEPARTMENT
School of Humanities and Sciences
STANFORD UNIVERSITY‘The Early Development of Programming Languages
by Donald E, Knuth and Luis Trabb Pardo
Computer Science Department
Stanford University
Stanford, California 94505
Abstract.
This paper surveys the evolution of "high level" programming languages
during the first decade of computer programing activity. We discuss the
contributions of Zuse (""Plankalkil", 1945), Goldstine/von Neumann ("Flow
Diagrams", 1946), Curry ("Composition", 1948), Mauchly et al. ("Short Code",
1950), Burks ("Intermediate PL", 1950), Rutishauser (1951), Bohm (1951),
Glennie ("AUTOCODE", 1952), Hopper et al. ("A-2", 1953), Laning/Zierler
(1953), Backus et al. ("FORTRAN", 1954-1957), Brooker ("Mark I Autocode",
1954), Kanynin/Liubimskii ("Mm-2", 1954), Ershov (""m", 1955), Grems/Porter
("BACAIC", 1955), Elsworth et al. ("Kompiler 2", 1955), Blum ("ADES", 1956),
Perlis et al. ("I?", 1956), Katz et al. ("MATH-MATIC", 1956-1958),
Hopper et al. ("FLOW-MATIC", 1956-1958), Bauer/Semelson (1956-1958).
‘The principal features of each contribution are illustrated; and for
purposes of comparison, a particular fixed algorithm has been encoded
(as far as possible) in each of the languages. This research is based
primarily on unpublished source materials, and the authors hope thet they
have been able to compile a fairly complete picture of the early
develoyments in this area.
This article was commissioned by the Incyclopedia of Computer Science
and Technology, ed. by Jack Belzer, Albert G, Holzman, and Allen Kent,
and it is scheduled to appear in vol. 6 or vol. 7 of that encyclopedia
during 1977.
‘The preparation of this paper has been supported in part by National
Science Foundation grant MCS 72-03752 AO3, by the Office of Naval Research
contract NOOOLs~76-C-0330, and by IBM Corporation. Reproduction in whole
or in part is permitted for any purpose of the United States Government.The Early Development of Programming Languages
It ds interesting and instructive to study the history of a subject
not only because it helps us to understand how the importent ideas were
om -- end to see how the "humen element" entered into each development -~
but also because it helps us to appreciate the amount of progress that
has been made, This is especially striking in the case of programing
languages, a subject which has long been undervalued by computer scientists.
After learning a high-level language, a person often tends to think mostly
of improvements he or she would like to see (since all languages can be
improved), and it is very easy to underestimate the difficulty of creating
that language in the first place. The real depth of this subject can
only be properly perceived when we realize how long it took to develop
‘the important concepts which we now regard as self evident. ‘These ideas
were by no means obvious @ priori, and many years of work by brilliant
and dedicated people were necessary before our current state of mowledge
was reached.
The goal of this paper is to give an adequate account of the early
history of "high level" programming languages, covering roughly the first
decade of their development. Our story will take us up to 1957, when the
practical importance of algebraic compilers was first being demonstrated,
and when computers were just beginning to be available in large numbers.
We will see how people's fundamental conceptions of algorithms and of the
programming process evolved during the years -- not always in a forward
@irection -- culminating in languages such as FORTRAN I. The best languages
we shall encounter are, of course, very primitive by today's stendards, but
they were good enough to touch off an explosive growth in language
development; the ensuing decade of intense activity has been detailed in
Jean Semmet's 785-page book [SA 69]. We shall be concerned with the more
relaxed atmosphere of the "pre-Babell" days, when people who worked with
computers foresaw the need for important aids to programming that did not
yet exist, In many cases these developments were so far ahead of their
time that they remained unpublished, and they are still largely unknown
today.
Proceedings of the third ACM SIGPLAN conference on History of programming languages Acm - Association For Computing Machinery - Download the ebook now and read anytime, anywhere