Technische Universiteit Eindhoven Department of Mathematics and Computer Science The History of the ALGOL Effort by HT de Beer supervisors: C. Hemerik L.M.M. Royakkers Eindhoven, August 2006 Abstract This report studies the importancy of the ALGOL effort for computer science. Therefore the history of the ALGOL effort is told, starting with the compu- tational context of the 1950s when the ALGOL effort was initiated. Second, the development from IAL to ALGOL 60 and the role the BNF played in this development are discussed. Third, the translation of ALGOL 60 and the establishment of the scientific field of translator writing are treated. Finally, the period of ALGOL 60 maintenance and the subsequent period of creating a successor to ALGOL 60 are described. ii Preface This history on the ALGOL effort was written as a Master thesis in Com- puter Science and Engineering (Technische Informatica) at the Eindhoven University of Technology, the Netherlands. iii Contents Abstract ii Preface iii Contents iv 0 Introduction 1 0.0 On the sources used ........................ 2 0.1 My own perspective ........................ 3 0.2 The ALGOL effort: a definition .................. 4 0.3 Notes ................................ 4 1 Creation 5 1.0 The start of the ALGOL effort ................... 5 1.1 The need for a universal algorithmic language ........... 7 1.1.0 The American field of computing ............. 7 1.1.1 The European field of computing ............. 9 1.1.2 The difference between Europe and the USA and the need for universalism ...................... 11 1.2 Why was IAL chosen over other algorithmic languages? ..... 11 1.2.0 IT ............................. 12 1.2.1 MATH-MATIC ....................... 14 1.2.2 FORTRAN ......................... 15 1.2.3 IAL ............................. 16 1.2.4 Why did IAL have to be the international algebraic lan- guage? ........................... 16 1.3 Conclusion ............................. 18 1.4 Notes ................................ 19 2 Notation 22 2.0 Why notation matters? ...................... 22 2.1 Notations used to describe early programming languages ..... 23 2.1.0 The notation of IAL and FORTRAN compared ...... 23 2.1.1 The quality of IAL’s notation ............... 26 2.2 Backus’s notation ......................... 29 2.3 Developing ALGOL 60 ....................... 31 iv Contents 2.4 Conclusion ............................. 36 2.5 Notes ................................ 37 3 Translation 39 3.0 From craftsmanship to science ................... 39 3.1 Sequential formula translation ................... 41 3.1.0 The development of the sequential formula translation technique .......................... 43 3.1.1 Sequental formula translation explained .......... 46 3.2 Implementing procedures and recursion .............. 49 3.2.0 “Solving” by ignoring ................... 49 3.2.1 Dijkstra’s Recursive Programming ............. 50 3.2.2 The solution of Irons and Feurzeig ............ 51 3.3 The influence of ALGOL’s structure ................ 54 3.3.0 Grau’s recursive translation technique ........... 54 3.3.1 Irons’s syntax directed compiler .............. 55 3.3.2 Lucas’s structure of formula translators .......... 56 3.3.3 Connecting ALGOL-like languages with context-free lan- guage theory ........................ 58 3.4 Conclusion ............................. 59 3.5 Notes ................................ 60 4 Succession 63 4.0 Use and maintenance of ALGOL 60 ................ 63 4.1 The move of responsibility for ALGOL to WG 2.1 ......... 65 4.2 On ALGOL X and Y ........................ 67 4.3 The end of the ALGOL effort: the creation of ALGOL 68 .... 72 4.3.0 Orthogonality versus pragmatism ............. 72 4.3.1 A contribution to the development of ALGOL ...... 73 4.3.2 The end and the ALGOL 68 report ............ 75 4.4 Conclusion ............................. 76 4.5 Notes ................................ 77 5 Conclusion 80 5.0 Summary .............................. 80 5.0.0 The start of the ALGOL effort ............... 80 5.0.1 From IAL to ALGOL 60: notation and language ..... 82 5.0.2 From craftsmanship to science: translating ALGOL 60 .. 83 5.0.3 In search of a worthy successor to ALGOL 60 ....... 84 5.1 Conclusions: The important contributions by the ALGOL effort . 85 5.1.0 The Backus Naur Form .................. 85 v Contents 5.1.1 Programming language concepts ............. 86 5.1.2 Syntax directed translation and dynamic memory mana- gement ........................... 87 5.1.3 The contribution of the field of translator writing ..... 88 5.2 Success and failure ......................... 88 5.3 Notes ................................ 89 Bibliography 90 vi Introduction 0 On Sources, Perspective and the ALGOL Effort What was the importance of the ALGOL effort for computer science? • On the sources used to answer this question • My own perspective on ALGOL and the ALGOL effort • And the meaning of the term “ALGOL effort” 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.’0 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. Pe- ter 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.1 It may be not for their work in the ALGOL effort per s´e,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 lan- guages 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 ef- fort 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 cer- tainly 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 1, 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? 1 0 Introduction 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 2, the development from ALGOL 58 leading to the publication of the Report on the algorithmic language ALGOL 60 2 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 3. 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 re- sulting 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 AL- GOL? (See Chapter 4) Finally, in Chapter 5, the conclusion of this research on the ALGOL effort is drawn by answering the main question: What was the 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. 0.0 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 Communications of the ACM and the ALGOL Bulletin related to the AL- GOL 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. 2 0.1 My own perspective The ALGOL Bulletin 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 ALGOL Bulletin can give a coloured view on historical events in the ALGOL effort. The secondary sources I have used consisted of historical works on com- puter 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.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages103 Page
-
File Size-