The History of the ALGOL Effort

Total Page:16

File Type:pdf, Size:1020Kb

The History of the ALGOL Effort 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.
Recommended publications
  • Thomas Ströhlein's Endgame Tables: a 50Th Anniversary
    Thomas Ströhlein's Endgame Tables: a 50th Anniversary Article Supplemental Material The Festschrift on the 40th Anniversary of the Munich Faculty of Informatics Haworth, G. (2020) Thomas Ströhlein's Endgame Tables: a 50th Anniversary. ICGA Journal, 42 (2-3). pp. 165-170. ISSN 1389-6911 doi: https://doi.org/10.3233/ICG-200151 Available at http://centaur.reading.ac.uk/90000/ It is advisable to refer to the publisher’s version if you intend to cite from the work. See Guidance on citing . Published version at: https://content.iospress.com/articles/icga-journal/icg200151 To link to this article DOI: http://dx.doi.org/10.3233/ICG-200151 Publisher: The International Computer Games Association All outputs in CentAUR are protected by Intellectual Property Rights law, including copyright law. Copyright and IPR is retained by the creators or other copyright holders. Terms and conditions for use of this material are defined in the End User Agreement . www.reading.ac.uk/centaur CentAUR Central Archive at the University of Reading Reading’s research outputs online 40 Jahre Informatik in Munchen:¨ 1967 – 2007 Festschrift Herausgegeben von Friedrich L. Bauer unter Mitwirkung von Helmut Angstl, Uwe Baumgarten, Rudolf Bayer, Hedwig Berghofer, Arndt Bode, Wilfried Brauer, Stephan Braun, Manfred Broy, Roland Bulirsch, Hans-Joachim Bungartz, Herbert Ehler, Jurgen¨ Eickel, Ursula Eschbach, Anton Gerold, Rupert Gnatz, Ulrich Guntzer,¨ Hellmuth Haag, Winfried Hahn (†), Heinz-Gerd Hegering, Ursula Hill-Samelson, Peter Hubwieser, Eike Jessen, Fred Kroger,¨ Hans Kuß, Klaus Lagally, Hans Langmaack, Heinrich Mayer, Ernst Mayr, Gerhard Muller,¨ Heinrich Noth,¨ Manfred Paul, Ulrich Peters, Hartmut Petzold, Walter Proebster, Bernd Radig, Angelika Reiser, Werner Rub,¨ Gerd Sapper, Gunther Schmidt, Fred B.
    [Show full text]
  • A Politico-Social History of Algolt (With a Chronology in the Form of a Log Book)
    A Politico-Social History of Algolt (With a Chronology in the Form of a Log Book) R. w. BEMER Introduction This is an admittedly fragmentary chronicle of events in the develop­ ment of the algorithmic language ALGOL. Nevertheless, it seems perti­ nent, while we await the advent of a technical and conceptual history, to outline the matrix of forces which shaped that history in a political and social sense. Perhaps the author's role is only that of recorder of visible events, rather than the complex interplay of ideas which have made ALGOL the force it is in the computational world. It is true, as Professor Ershov stated in his review of a draft of the present work, that "the reading of this history, rich in curious details, nevertheless does not enable the beginner to understand why ALGOL, with a history that would seem more disappointing than triumphant, changed the face of current programming". I can only state that the time scale and my own lesser competence do not allow the tracing of conceptual development in requisite detail. Books are sure to follow in this area, particularly one by Knuth. A further defect in the present work is the relatively lesser availability of European input to the log, although I could claim better access than many in the U.S.A. This is regrettable in view of the relatively stronger support given to ALGOL in Europe. Perhaps this calmer acceptance had the effect of reducing the number of significant entries for a log such as this. Following a brief view of the pattern of events come the entries of the chronology, or log, numbered for reference in the text.
    [Show full text]
  • Advancing Automatic Programming: Regeneration, Meta-Circularity, and Two-Sided Interfaces
    SOFTNET 2019 Advancing Automatic Programming: Regeneration, Meta-circularity, and Two-Sided Interfaces HERWIGMANNAERT NOVEMBER 2 7 , 2 0 1 9 • Automatic Programming • Toward Automatic Regeneration • Creating Meta-Circular Regeneration • On Meta-Programming Interfaces ADVANCING AUTOMATIC PROGRAMMING • Concluding Facts and Thoughts Overview • Questions and Discussion • Automatic Programming • Concept and Trends • Remaining Challenges • Toward Automatic Regeneration ADVANCING AUTOMATIC PROGRAMMING • Creating Meta-Circular Regeneration • On Meta-Programming Interfaces Overview • Concluding Facts and Thoughts • Questions and Discussion Automatic Programming • Automatic programming: • The act of automatically generating source code from a model or template • Sometimes distinguished from code generation, as performed by a compiler • Has always been a euphemism for programming in a higher-level language than was then available to the programmer [David Parnas] • Also referred to a generative or meta-programming • To manufacture software components in an automated way • It is as old as programming itself: System.out.println(“Hello world.”); System.out.println(“System.out.println(\“Hello world.\”);”); The Need for Automatic Programming • Goal is and has always been to improve programmer productivity • In general, to manufacture software components in an automated way, in the same way as automation in the industrial revolution, would: • Increase programming productivity • Consolidate programming knowledge • Eliminate human programming errors • Such
    [Show full text]
  • The Denver Observer December 2017
    The Denver DECEMBER 2017 OBSERVER Messier 76, the Little Dumbbell Nebula, one of the deep-sky objects featured in this month’s “Skies.” Image © Joe Gafford. DECEMBER SKIES by Zachary Singer The Solar System of view in your ’scope will include the Moon’s Sky Calendar 3 Full Moon December will be a decent month for eastern section and the star, with plenty of 10 Last-Quarter Moon planetary events; though some planets are room. 17 New Moon slipping from view, others will take their I recommend you observe early—it 26 First-Quarter Moon place. We also have an occultation of Alde- should be a beautiful view, with the star a baran; as seen from Denver, the Moon will bright spark near the Moon’s edge, and over pass in front of the star at approximately the following minutes (they’ll go fast, just like In the Observer 4:06 PM, on the 30th. At that point, with the recent solar eclipse did), you can see the Moon move in its orbit around us, using the sunset still more than half an hour away, the President’s Message . .2 star won’t be visible to the naked eye, but it star for a benchmark. (Before 4:00 PM, look Society Directory. 2 should be in a telescope if you know where for Aldebaran outside the square, but along to look: Imagine a square drawn just large the diagonal from the Moon’s center to that Schedule of Events . 2 enough to touch the edges of the Moon, and lower-left edge.) About Denver Astronomical Society .
    [Show full text]
  • Security Applications of Formal Language Theory
    Dartmouth College Dartmouth Digital Commons Computer Science Technical Reports Computer Science 11-25-2011 Security Applications of Formal Language Theory Len Sassaman Dartmouth College Meredith L. Patterson Dartmouth College Sergey Bratus Dartmouth College Michael E. Locasto Dartmouth College Anna Shubina Dartmouth College Follow this and additional works at: https://digitalcommons.dartmouth.edu/cs_tr Part of the Computer Sciences Commons Dartmouth Digital Commons Citation Sassaman, Len; Patterson, Meredith L.; Bratus, Sergey; Locasto, Michael E.; and Shubina, Anna, "Security Applications of Formal Language Theory" (2011). Computer Science Technical Report TR2011-709. https://digitalcommons.dartmouth.edu/cs_tr/335 This Technical Report is brought to you for free and open access by the Computer Science at Dartmouth Digital Commons. It has been accepted for inclusion in Computer Science Technical Reports by an authorized administrator of Dartmouth Digital Commons. For more information, please contact [email protected]. Security Applications of Formal Language Theory Dartmouth Computer Science Technical Report TR2011-709 Len Sassaman, Meredith L. Patterson, Sergey Bratus, Michael E. Locasto, Anna Shubina November 25, 2011 Abstract We present an approach to improving the security of complex, composed systems based on formal language theory, and show how this approach leads to advances in input validation, security modeling, attack surface reduction, and ultimately, software design and programming methodology. We cite examples based on real-world security flaws in common protocols representing different classes of protocol complexity. We also introduce a formalization of an exploit development technique, the parse tree differential attack, made possible by our conception of the role of formal grammars in security. These insights make possible future advances in software auditing techniques applicable to static and dynamic binary analysis, fuzzing, and general reverse-engineering and exploit development.
    [Show full text]
  • Binocular Universe: You're My Hero! December 2010
    Binocular Universe: You're My Hero! December 2010 Phil Harrington on't you just love a happy ending? I know I do. Picture this. Princess Andromeda, a helpless damsel in distress, chained to a rock as a ferocious D sea monster loomed nearby. Just when all appeared lost, our hero -- Perseus! -- plunges out of the sky, kills the monster, and sweeps up our maiden in his arms. Together, they fly off into the sunset on his winged horse to live happily ever after. Such is the stuff of myths and legends. That story, the legend of Perseus and Andromeda, was recounted in last month's column when we visited some binocular targets within the constellation Cassiopeia. In mythology, Queen Cassiopeia was Andromeda's mother, and the cause for her peril in the first place. Left: Autumn star map from Star Watch by Phil Harrington Above: Finder chart for this month's Binocular Universe. Chart adapted from Touring the Universe through Binoculars Atlas (TUBA), www.philharrington.net/tuba.htm This month, we return to the scene of the rescue, to our hero, Perseus. He stands in our sky to the east of Cassiopeia and Andromeda, should the Queen's bragging get her daughter into hot water again. The constellation's brightest star, Mirfak (Alpha [α] Persei), lies about two-thirds of the way along a line that stretches from Pegasus to the bright star Capella in Auriga. Shining at magnitude +1.8, Mirfak is classified as a class F5 white supergiant. It radiates some 5,000 times the energy of our Sun and has a diameter 62 times larger.
    [Show full text]
  • The Advent of Recursion & Logic in Computer Science
    The Advent of Recursion & Logic in Computer Science MSc Thesis (Afstudeerscriptie) written by Karel Van Oudheusden –alias Edgar G. Daylight (born October 21st, 1977 in Antwerpen, Belgium) under the supervision of Dr Gerard Alberts, and submitted to the Board of Examiners in partial fulfillment of the requirements for the degree of MSc in Logic at the Universiteit van Amsterdam. Date of the public defense: Members of the Thesis Committee: November 17, 2009 Dr Gerard Alberts Prof Dr Krzysztof Apt Prof Dr Dick de Jongh Prof Dr Benedikt Löwe Dr Elizabeth de Mol Dr Leen Torenvliet 1 “We are reaching the stage of development where each new gener- ation of participants is unaware both of their overall technological ancestry and the history of the development of their speciality, and have no past to build upon.” J.A.N. Lee in 1996 [73, p.54] “To many of our colleagues, history is only the study of an irrele- vant past, with no redeeming modern value –a subject without useful scholarship.” J.A.N. Lee [73, p.55] “[E]ven when we can't know the answers, it is important to see the questions. They too form part of our understanding. If you cannot answer them now, you can alert future historians to them.” M.S. Mahoney [76, p.832] “Only do what only you can do.” E.W. Dijkstra [103, p.9] 2 Abstract The history of computer science can be viewed from a number of disciplinary perspectives, ranging from electrical engineering to linguistics. As stressed by the historian Michael Mahoney, different `communities of computing' had their own views towards what could be accomplished with a programmable comput- ing machine.
    [Show full text]
  • Turing's Influence on Programming — Book Extract from “The Dawn of Software Engineering: from Turing to Dijkstra”
    Turing's Influence on Programming | Book extract from \The Dawn of Software Engineering: from Turing to Dijkstra" Edgar G. Daylight∗ Eindhoven University of Technology, The Netherlands [email protected] Abstract Turing's involvement with computer building was popularized in the 1970s and later. Most notable are the books by Brian Randell (1973), Andrew Hodges (1983), and Martin Davis (2000). A central question is whether John von Neumann was influenced by Turing's 1936 paper when he helped build the EDVAC machine, even though he never cited Turing's work. This question remains unsettled up till this day. As remarked by Charles Petzold, one standard history barely mentions Turing, while the other, written by a logician, makes Turing a key player. Contrast these observations then with the fact that Turing's 1936 paper was cited and heavily discussed in 1959 among computer programmers. In 1966, the first Turing award was given to a programmer, not a computer builder, as were several subsequent Turing awards. An historical investigation of Turing's influence on computing, presented here, shows that Turing's 1936 notion of universality became increasingly relevant among programmers during the 1950s. The central thesis of this paper states that Turing's in- fluence was felt more in programming after his death than in computer building during the 1940s. 1 Introduction Many people today are led to believe that Turing is the father of the computer, the father of our digital society, as also the following praise for Martin Davis's bestseller The Universal Computer: The Road from Leibniz to Turing1 suggests: At last, a book about the origin of the computer that goes to the heart of the story: the human struggle for logic and truth.
    [Show full text]
  • Wynyard Planetarium & Observatory a Autumn Observing Notes
    Wynyard Planetarium & Observatory A Autumn Observing Notes Wynyard Planetarium & Observatory PUBLIC OBSERVING – Autumn Tour of the Sky with the Naked Eye CASSIOPEIA Look for the ‘W’ 4 shape 3 Polaris URSA MINOR Notice how the constellations swing around Polaris during the night Pherkad Kochab Is Kochab orange compared 2 to Polaris? Pointers Is Dubhe Dubhe yellowish compared to Merak? 1 Merak THE PLOUGH Figure 1: Sketch of the northern sky in autumn. © Rob Peeling, CaDAS, 2007 version 1.2 Wynyard Planetarium & Observatory PUBLIC OBSERVING – Autumn North 1. On leaving the planetarium, turn around and look northwards over the roof of the building. Close to the horizon is a group of stars like the outline of a saucepan with the handle stretching to your left. This is the Plough (also called the Big Dipper) and is part of the constellation Ursa Major, the Great Bear. The two right-hand stars are called the Pointers. Can you tell that the higher of the two, Dubhe is slightly yellowish compared to the lower, Merak? Check with binoculars. Not all stars are white. The colour shows that Dubhe is cooler than Merak in the same way that red-hot is cooler than white- hot. 2. Use the Pointers to guide you upwards to the next bright star. This is Polaris, the Pole (or North) Star. Note that it is not the brightest star in the sky, a common misconception. Below and to the left are two prominent but fainter stars. These are Kochab and Pherkad, the Guardians of the Pole. Look carefully and you will notice that Kochab is slightly orange when compared to Polaris.
    [Show full text]
  • The Advent of Recursion in Programming, 1950S-1960S
    The Advent of Recursion in Programming, 1950s-1960s Edgar G. Daylight?? Institute of Logic, Language, and Computation, University of Amsterdam, The Netherlands [email protected] Abstract. The term `recursive' has had different meanings during the past two centuries among various communities of scholars. Its historical epistemology has already been described by Soare (1996) with respect to the mathematicians, logicians, and recursive-function theorists. The computer practitioners, on the other hand, are discussed in this paper by focusing on the definition and implementation of the ALGOL60 program- ming language. Recursion entered ALGOL60 in two novel ways: (i) syn- tactically with what we now call BNF notation, and (ii) dynamically by means of the recursive procedure. As is shown, both (i) and (ii) were in- troduced by linguistically-inclined programmers who were not versed in logic and who, rather unconventionally, abstracted away from the down- to-earth practicalities of their computing machines. By the end of the 1960s, some computer practitioners had become aware of the theoreti- cal insignificance of the recursive procedure in terms of computability, though without relying on recursive-function theory. The presented re- sults help us to better understand the technological ancestry of modern- day computer science, in the hope that contemporary researchers can more easily build upon its past. Keywords: recursion, recursive procedure, computability, syntax, BNF, ALGOL, logic, recursive-function theory 1 Introduction In his paper, Computability and Recursion [41], Soare explained the origin of computability, the origin of recursion, and how both concepts were brought to- gether in the 1930s by G¨odel, Church, Kleene, Turing, and others.
    [Show full text]
  • BASIC Session
    BASIC Session Chairman: Thomas Cheatham Speaker: Thomas E. Kurtz PAPER: BASIC Thomas E. Kurtz Darthmouth College 1. Background 1.1. Dartmouth College Dartmouth College is a small university dating from 1769, and dedicated "for the educa- tion and instruction of Youth of the Indian Tribes in this Land in reading, writing and all parts of learning . and also of English Youth and any others" (Wheelock, 1769). The undergraduate student body (now nearly 4000) outnumbers all graduate students by more than 5 to 1, and majors predominantly in the Social Sciences and the Humanities (over 75%). In 1940 a milestone event, not well remembered until recently (Loveday, 1977), took place at Dartmouth. Dr. George Stibitz of the Bell Telephone Laboratories demonstrated publicly for the first time, at the annual meeting of the American Mathematical Society, the remote use of a computer over a communications line. The computer was a relay cal- culator designed to carry out arithmetic on complex numbers. The terminal was a Model 26 Teletype. Another milestone event occurred in the summer of 1956 when John McCarthy orga- nized at Dartmouth a summer research project on "artificial intelligence" (the first known use of this phrase). The computer scientists attending decided a new language was needed; thus was born LISP. [See the paper by McCarthy, pp. 173-185 in this volume. Ed.] 1.2. Dartmouth Comes to Computing After several brief encounters, Dartmouth's liaison with computing became permanent and continuing in 1956 through the New England Regional Computer Center at MIT, HISTORY OF PROGRAMMING LANGUAGES 515 Copyright © 1981 by the Association for Computing Machinery, Inc.
    [Show full text]
  • Latest Results from the Procedure Calling Test, Ackermann's Function
    Latest results from the procedure calling test, Ackermann’s function B A WICHMANN National Physical Laboratory, Teddington, Middlesex Division of Information Technology and Computing March 1982 Abstract Ackermann’s function has been used to measure the procedure calling over- head in languages which support recursion. Two papers have been written on this which are reproduced1 in this report. Results from further measurements are in- cluded in this report together with comments on the data obtained and codings of the test in Ada and Basic. 1 INTRODUCTION In spite of the two publications on the use of Ackermann’s Function [1, 2] as a mea- sure of the procedure-calling efficiency of programming languages, there is still some interest in the topic. It is an easy test to perform and the large number of results ob- tained means that an implementation can be compared with many other systems. The purpose of this report is to provide a listing of all the results obtained to date and to show their relationship. Few modern languages do not provide recursion and hence the test is appropriate for measuring the overheads of procedure calls in most cases. Ackermann’s function is a small recursive function listed on page 2 of [1] in Al- gol 60. Although of no particular interest in itself, the function does perform other operations common to much systems programming (testing for zero, incrementing and decrementing integers). The function has two parameters M and N, the test being for (3, N) with N in the range 1 to 6. Like all tests, the interpretation of the results is not without difficulty.
    [Show full text]