Introduction
On sources, Perspective, and the ALGOL Effort
Huub de Beer
August 2006
On May 20th, 2006, Peter Naur received the 2005 ACM Turing Award. This award is often regarded as the “Nobel Prize” in Computer Science. Naur was rewarded for his
pioneering work on defining the Algol 60 programming language. (…) [He] was editor in 1960 of the hugely influential “Report on the Algorithmic Language Algol 60.” He is recognised for the report’s elegance, uniformity and coherence, and credited as an important contributor to the language’s power and simplicity. (Pressroom, 2006)
Forty-five years after the publication of the ALGOL 60 report, it is still regarded as one of the most influential papers in computer science. Peter Naur was not the only Turing Award winner related to the ALGOL effort: A.J. Perlis, J. McCarthy, E.W. Dijkstra, J. Backus, R.W. Floyd, C.A.R. Hoare, and N. Wirth were all awarded before him.(ACM, 2006) It may not be for their work in the ALGOL effort per sé, but they were all part of the effort, either as a member of the committee defining ALGOL 58 or ALGOL 60, as an implementor of ALGOL 60, as a contributor to the theory of formal languages stimulated by ALGOL 60, or as a member of the committee working on a new ALGOL in the 1960s.
The awarding of these computer scientists indicates that the ALGOL effort was an important part of the development of computer science itself. This importance is often stated without elaborating exactly why it was so important. ALGOL 60 was not the first programming language and it certainly was not the most used one. So, the question arises: What was the importance of the ALGOL effort for computer science?
To answer this question, the history of the ALGOL effort is told. First, in Chapter Creation, the start of the effort is discussed and the central question in that chapter is: Why was there a need for an effort like the ALGOL effort? This question will be answered by treating the computational context in which this effort was initiated; the algebraic programming languages from the 1950s are compared, including the first language created by the ALGOL effort: ALGOL 58. Was this International Algebraic Language really better than these other algebraic languages?
Then, in Chapter Notation, the development from ALGOL 58 leading to the publication of the Report on the algorithmic language ALGOL 60 (Backus et al., 1960) in May 1960 is treated. In this period, the notation used to describe and define programming languages changed fundamentally. The resulting ALGOL 60 report would become the standard for defining programming languages. Both the interesting new features in the programming language ALGOL 60 and the reasons why this new notation was developed during the ALGOL effort, are discussed.
ALGOL 60 is often related to the development of formal language theory in computer science. This development was a result of the common effort to create translators for ALGOL 60. How did this development take shape, and, more importantly, what was the importance of this development for computer science? These questions are answered in Chapter Translation.
After the publication of the ALGOL effort, a period of maintenance of the ALGOL 60 language was started. During this period, the responsibility for ALGOL was transferred to an international body: the famous Working Group 2.1 of IFIP. Later, this working group developed a new ALGOL resulting in dismay and the end of the ALGOL effort. This end of the ALGOL effort did not set a good example for computer science, and the question arises: what was the importance, if any, of the effort to create a new ALGOL? (See Chapter Succession)
Finally, in Chapter Conclusion, the conclusion of this research on the ALGOL effort is drawn by answering the main question: What was the importance of the ALGOL effort for computer science? Before the history of the ALGOL effort is told some remarks on the sources used, on my perspective, and on the term “ALGOL effort” are made.
1 On the sources used
For this research both primary and secondary sources are used. The primary sources are almost all scientific publications. Most of them are articles from the and the related to the ALGOL effort. Using scientific publications as primary sources, in particular shorter articles, has a disadvantage: they were prepared to be published, and they give an academic view on developments in the ALGOL effort.
The is somewhat different from the other sources because it was edited by one person. The editor’s perspective has influenced some of the content. Especially when reporting on institutional matters or when asking questions to the audience the information presented in the can give a coloured view on historical events in the ALGOL effort.
The secondary sources I have used consisted of historical works on computer science, on programming languages in general, on the ALGOL effort, and on some aspects of the ALGOL effort. Many of these works were written by people involved in the historical subject they wrote about. This gives the reader a special and direct view on the matter. Although the authors try to reflect and try to be as objective as possible, these histories are personal and, hence, subjective.
In this category, the proceedings of the two are great recourses on the history of the selected programming languages. The papers in these proceedings were written by the people behind those languages and are extremely useful to get an inside view on the early developments of those languages.
Furthermore, F.L. Bauer needs special attention because this German computer scientist has taken up writing history of computer science. Although he writes often about developments where he himself was actively involved in, he is the only source on the topic of early ALGOL translation and the developments leading to the initiation of the ALGOL effort. As a result, his historical works are very useful if they are used with care.
Finally, there are historical papers written on special occasions, like the ACM Turing Award Lectures and anniversaries, wherein the author looks back on his personal involvements in the ALGOL effort and computer science. These articles are interesting because they are able to place other sources in a historical context and give a more anecdotal view on the matter.
Lacking are sources on the use of the ALGOL languages and the reception of the ALGOL effort. The exception is the journal that, although explicitly American, gives a view on the computing community from a user’s perspective in industry. It is, however, not enough to reconstruct a realistic view on the use and reception of ALGOL in Europe or in the USA.
2 My own perspective
Besides the perspective in the sources my own perspective is also important to know. I am a twenty-first century computer scientist with no involvement in ALGOL at all. Although the language was mentioned in some courses during my computer science education at the Eindhoven University of Technology, I do not know the language but by name.
The computer science education in Eindhoven focuses on structured programming and designing systems using formal methods. In other words, my perspective is that of an academic computer scientist rather than that of a programmer.
Besides studying computer science, I am also studying History at the University of Utrecht. I am experienced in doing historical research and will combine my knowledge of computer science with my experience in writing history to write this history of the ALGOL effort.
3 The ALGOL effort: a definition
Finally, I want to clarify the term “ALGOL effort”. The ALGOL effort did, at first, not exist as an official institution. Later in the development of the ALGOL effort, it became more official and institutionalised, but at the start it was just an idea. Some computer scientists wanted to create a new universal programming language to write algorithms in. The effort that was undertaken to create this programming language, and everything related to it, is what I call the “ALGOL effort”.
The ALGOL effort started somewhere in the mid-1950s. Where it ends is debatable: did it end in 1988 when the last ALGOL Bulletin was published, or did it end after the maintenance period of ALGOL 60? I have chosen the publication of the ALGOL 68 report as the end of the ALGOL effort. After the publication of this report in late 1969 the official developments on ALGOL did not end. The spirit of the ALGOL effort, however, was broken with the publication of a Minority Report.(Dijkstra et al., 1970) More than half of the members of Working Group 2.1 responsible for the development of ALGOL 68 did not agree with the final result. With this disagreement the idea of an universal language was no longer part of the ALGOL effort.