Final Version

Total Page:16

File Type:pdf, Size:1020Kb

Final Version Centrum Wiskunde & Informatica Software Engineering Software ENgineering A comparison between the ALGOL 60 implementations on the Electrologica X1 and the Electrologica X8 F.E.J. Kruseman Aretz REPORT SEN-E0801 SEPTEMBER 2008 Centrum Wiskunde & Informatica (CWI) is the national research institute for Mathematics and Computer Science. It is sponsored by the Netherlands Organisation for Scientific Research (NWO). CWI is a founding member of ERCIM, the European Research Consortium for Informatics and Mathematics. CWI's research has a theme-oriented structure and is grouped into four clusters. Listed below are the names of the clusters and in parentheses their acronyms. Probability, Networks and Algorithms (PNA) Software Engineering (SEN) Modelling, Analysis and Simulation (MAS) Information Systems (INS) Copyright © 2008, Centrum Wiskunde & Informatica P.O. Box 94079, 1090 GB Amsterdam (NL) Kruislaan 413, 1098 SJ Amsterdam (NL) Telephone +31 20 592 9333 Telefax +31 20 592 4199 ISSN 1386-369X A comparison between the ALGOL 60 implementations on the Electrologica X1 and the Electrologica X8 ABSTRACT We compare two ALGOL 60 implementations, both developed at the Mathematical Centre in Amsterdam, forerunner of the CWI. They were designed for Electrologica hardware, the EL X1 from 1958 and the EL X8 from 1965. The X1 did not support ALGOL 60 implementation at all. Its ALGOl 60 system was designed by Dijkstra and Zonneveld and completed in 1960. Although developed as an academic exercise it soon was heavily used and appreciated. The X8, successor of the X1 and (almost) upwards compatible to it, had a number of extensions chosen specifically to support ALGOL 60 implementation. The ALGOL 60 system, developed by Nederkoorn and Kruseman Aretz, was completed even before the first delivery of an X8. In this document we describe the two systems, demonstrating the progress in both hardware and software in a relatively short period. 2000 Mathematics Subject Classification: 01-08; 68-03; 68N20 1998 ACM Computing Classification System: K.2; D.3.4 Keywords and Phrases: History of Computing; ALGOL 60 compiler; Electorlogica X1; Electrologica X8 A comparison between the ALGOL 60 implementations on the Electrologica X1 and the Electrologica X8 F.E.J. Kruseman Aretz September 16, 2008 ii ABSTRACT We compare two ALGOL 60 implementations, both developed at the Mathematical Centre in Amsterdam, forerunner of the CWI. They were designed for Electrologica hardware, the EL X1 from 1958 and the EL X8 from 1965. The X1 did not support ALGOL 60 implementation at all. Its ALGOl 60 system was designed by Dijkstra and Zonneveld and completed in 1960. Although developed as an academic exercise it soon was heavily used and appreciated. The X8, successor of the X1 and (almost) upwards compatible to it, had a number of extensions chosen specifically to support ALGOL 60 implementation. The ALGOL 60 system, developed by Nederkoorn and Kruseman Aretz, was completed even before the first delivery of an X8. In this document we describe the two systems, demonstrating the progress in both hard- ware and software in a relatively short period. 2000 Mathematical Subject Classification 01–08, 68-03, 68N20 1988 Computer science Classification K.2, D.3.4 Keywords and Phrases historical, ALGOL 60 compiler, Electrologica X1, Electrologica X8 Preface In this document we compare two ALGOL 60 implementations, one for the Electrologica X1, completed in 1960, the other for the Electrologica X8, completed in 1965. To give the flavour of the difference, we present below the results of some measurements, carried out with the help of emulations of the two machines, for one and the same program, a Runge-Kutta integration program applied to the calculation of planetary orbits. X1 X8 compiling instructions executed 1 145 895 2 270 261 compile time 61.9 sec 8.92 sec average instruction time 54.1 µsec 3.93 µsec execution instructions executed 9 450 329 1 705 131 execution time 557.3 sec 10.36 sec average instruction time 52.6 µsec 6.08 µsec Where the El X8 is about 12 times faster than the El X1, we see that program execution is more than 50 times faster. This is due to the fact that the X1 was developed for ad- ministrative applications in the first place, whereas the (upwards compatible) instruction set of the X8 was chosen with ALGOL–like languages in mind. In this report we compare the two machines, the two compilers and the object codes they generate, in order to explain the figures given above, as well as many others. Moreover go we in somewhat deeper in aspects of the ALGOL 60 implementation of the X8 that have not been described elsewhere. iii iv Contents 1 Introduction 1 1.1 TheMathematicalCentre . 1 1.2 Electrologica................................... 2 1.3 ALGOL60 ................................... 3 1.4 ALGOL60implementationontheMC . 4 1.5 Installationofthesystem. ... 6 1.6 MaintenanceoftheALGOLsystemfortheX8 . ... 6 1.7 TheZ8committee ............................... 7 2 The Electrologica X1 9 3 The ALGOL 60 system for the EL X1 15 3.1 Introduction................................... 15 3.2 Therepresentationofvalues . ... 17 3.3 Thestructureoftheobjectprogram. .... 18 3.3.1 Simple assignment statements . 18 3.3.2 Arrayaccess............................... 20 3.3.3 The <for–statement> ......................... 21 3.3.4 Procedurecalls ............................. 25 3.3.5 Somestandardfunctions . 29 3.3.6 Designational expressions and goto statements . ....... 30 v vi CONTENTS 3.4 Thestructureofthecompiler . .. 31 3.4.1 Thelexicalscanner ........................... 32 3.4.2 Theprescanprogram. 32 3.4.3 Thesecondormainscanprogram. 32 4 The Electrologica X8 39 4.1 Floating–pointinstructions. ..... 40 4.2 Newaddressingvariants . 42 4.3 Anewsubroutinecall.............................. 44 4.4 Theexecuteinstructions . .. 44 4.5 Some other additions to the X8 instruction set . ....... 44 4.6 The execution times of floating–point operations . ......... 45 5 The ALGOL 60 system for the EL X8 49 5.1 Introduction................................... 49 5.2 Thestructureoftheobjectprogram. .... 52 5.2.1 Simple assignment statements . 52 5.2.2 Arrayaccess............................... 53 5.2.3 The <for–statement> ......................... 56 5.2.4 Procedurecalls ............................. 59 5.2.5 Somestandardfunctions . 62 5.2.6 Designational expressions and goto statements . ....... 64 5.2.7 Linenumbers .............................. 66 5.2.8 Guardingstackoverflow . 67 5.3 Thestructureofthecompiler . .. 69 5.3.1 Overview ................................ 69 5.3.2 The General–purpose procedures . 71 5.3.3 Thetranslatorscan........................... 72 5.3.4 Themacroprocessor . .. .. 77 CONTENTS vii 5.3.5 Thesymboltable ............................ 78 5.3.6 Prescan1................................. 80 5.3.7 Prescan0................................. 81 5.3.8 Resultsofsomemeasurements . 84 6 Comparison of the two ALGOL 60 systems 87 6.1 ComparisonoftheELX1andtheELX8. 87 6.2 Comparison of the ALGOL 60 implementations . .... 89 6.2.1 Comparisonoftheobjectprograms . 89 6.2.2 Comparisonofthecompilers. 90 6.3 Resultsofmeasurements . 92 6.3.1 Summary of results of Chapter 3 and Chapter 5 . .. 93 6.3.2 An estimation of the X1 to X8 acceleration factor . ..... 94 6.3.3 Theprograms.............................. 96 6.3.4 Compiling ................................ 97 6.3.5 Programexecution . .. .. 98 6.4 The influence of line–number book–keeping . ......100 7 Final remarks 103 A Sample programs 105 A.1 Havieintegrator................................. 108 A.2 QReigenvalues .................................112 A.3 JAZZ164,Runge–Kuttaintegration . .118 A.4 SieveofErathostenes .. .. .. 125 A.5 Pentomino....................................128 A.6 Lispinterpreter ................................. 134 B User–manual extracts 155 viii CONTENTS B.1 ExtractoftheX1ALGOLusermanual . 155 B.2 ExtractoftheX8ALGOLusermanual . 161 References 169 Chapter 1 Introduction 1.1 The Mathematical Centre The Mathematical Centre (or shortly: the MC) was founded in 1946 in order to promote the application of mathematics in the Netherlands. The ideas for such an institute were developed during world war II and many parties, among which ZWO (Foundation for Pure Scientific Research), the city of Amsterdam, CBS (Central Bureau for Statistics), Philips Gloeilampen Fabrieken (now Philips Electronics) and the Bataafse Petroleum Maatschappij, contributed to its foundation. Soon it had four departements: for pure mathematics, applied mathematics (mainly ap- plied analysis), statistics, and numerical computation. The latter department was from 1947 to 19731 headed by Adriaan van Wijngaarden (who was president of the board of directors of the institute from 1961 until his retirement in 1981). After a study tour to the UK and the US the decision was taken to build a first computer, based on relay tech- nology. The ‘ARRA’ was developed by C.S. Scholten and B.J. Loopstra and completed in 1952, but it never functioned satisfactorily and was broken down shortly after its official inauguration. The structure of the next MC computer, called ‘ARRA II’, was highly influenced by G.A. Blaauw, who joined the MC from 1952 until 1955 and learned the profession in the US with Howard Aiken. It was completed in 1955 and worked successfully. It had a drum store of 1024 words of 30 bits (revolution time 20 msec). The basic software for 1The department for numerical computation was split into two departments Januari 1st 1973, each with a new head. 1 2 CHAPTER 1. INTRODUCTION the
Recommended publications
  • Kathleen Fisher Question: Interesting Answer in Algol
    10/21/08 cs242! Lisp! Algol 60! Algol 68! Pascal! Kathleen Fisher! ML! Modula! Reading: “Concepts in Programming Languages” Chapter 5 except 5.4.5! Haskell! “Real World Haskell”, Chapter 0 and Chapter 1! (http://book.realworldhaskell.org/)! Many other languages:! Algol 58, Algol W, Euclid, EL1, Mesa (PARC), …! Thanks to John Mitchell and Simon Peyton Jones for some of these slides. ! Modula-2, Oberon, Modula-3 (DEC)! Basic Language of 1960! Simple imperative language + functions! Successful syntax, BNF -- used by many successors! real procedure average(A,n); statement oriented! real array A; integer n; No array bounds.! begin … end blocks (like C { … } )! begin if … then … else ! real sum; sum := 0; Recursive functions and stack storage allocation! for i = 1 step 1 until n Fewer ad hoc restrictions than Fortran! do General array references: A[ x + B[3] * y ] sum := sum + A[i]; Type discipline was improved by later languages! average := sum/n No “;” here.! Very influential but not widely used in US! end; Tony Hoare: “Here is a language so far ahead of its time that it was not only an improvement on its predecessors Set procedure return value by assignment.! but also on nearly all of its successors.”! Question:! Holes in type discipline! Is x := x equivalent to doing nothing?! Parameter types can be arrays, but! No array bounds! Interesting answer in Algol:! Parameter types can be procedures, but! No argument or return types for procedure parameters! integer procedure p; begin Problems with parameter passing mechanisms!
    [Show full text]
  • Edsger Dijkstra: the Man Who Carried Computer Science on His Shoulders
    INFERENCE / Vol. 5, No. 3 Edsger Dijkstra The Man Who Carried Computer Science on His Shoulders Krzysztof Apt s it turned out, the train I had taken from dsger dijkstra was born in Rotterdam in 1930. Nijmegen to Eindhoven arrived late. To make He described his father, at one time the president matters worse, I was then unable to find the right of the Dutch Chemical Society, as “an excellent Aoffice in the university building. When I eventually arrived Echemist,” and his mother as “a brilliant mathematician for my appointment, I was more than half an hour behind who had no job.”1 In 1948, Dijkstra achieved remarkable schedule. The professor completely ignored my profuse results when he completed secondary school at the famous apologies and proceeded to take a full hour for the meet- Erasmiaans Gymnasium in Rotterdam. His school diploma ing. It was the first time I met Edsger Wybe Dijkstra. shows that he earned the highest possible grade in no less At the time of our meeting in 1975, Dijkstra was 45 than six out of thirteen subjects. He then enrolled at the years old. The most prestigious award in computer sci- University of Leiden to study physics. ence, the ACM Turing Award, had been conferred on In September 1951, Dijkstra’s father suggested he attend him three years earlier. Almost twenty years his junior, I a three-week course on programming in Cambridge. It knew very little about the field—I had only learned what turned out to be an idea with far-reaching consequences. a flowchart was a couple of weeks earlier.
    [Show full text]
  • Publiek Domein Laat Bedrijven Te Veel Invullen
    Steven Pemberton, software-uitvinder en bouwer aan het World wide web Publiek domein laat bedrijven te veel invullen De Brit Steven Pemberton is al sinds 1982 verbonden aan het Centrum voor Wiskunde Informatica (CWI) in Amsterdam. Ook hij is een aartsvader van het internet. Specifiek van het World wide web, waarvan hij destijds dicht bij de uitvinding zat. Steven blijft naar de toekomst kijken, nog met dezelfde fraaie idealen. C.V. 19 februari 1953 geboren te Ash, Surrey, Engeland 1972-1975 Programmeur Research Support Unit Sussex University 1975-1977 Research Programmer Manchester University 1977-1982 Docent Computerwetenschap Brighton University 1982-heden Onderzoeker aan het Centrum voor Wiskunde & Informatica (CWI) Verder: 1993–1999 Hoofdredacteur SIGCHI Bulletin en ACM Interactions 1999–2009 Voorzitter HTML en XHTML2 werkgroepen van W3C 2008-heden Voorzitter XForms werkgroep W3C The Internet Guide to Amsterdam Homepage bij het CWI Op Wikipedia 1 Foto’s: Frank Groeliken Tekst: Peter Olsthoorn Steven Pemberton laat zich thuis interviewen, op een typisch Amsterdamse plek aan de Bloemgracht, op de 6e etage van een pakhuis uit 1625 met uitzicht op de Westertoren. Hij schrijft aan een boek, een voortzetting van zijn jaarlijkse lezing in Pakhuis de Zwijger, met in 2011 The Computer as Extended Phenotype (Computers, Genes and You) als titel. Wat is je thema? “De invloed van hard- en software op de maatschappij, vanuit de nieuwe technologie bezien. ‘Fenotype’ gaat over computers als product van onze genen, als een onderdeel van de evolutie. Je kunt de aanwas van succesvolle genen zien als een vorm van leren, of een vorm van geheugen.
    [Show full text]
  • An Interview with Tony Hoare ACM 1980 A.M. Turing Award Recipient
    1 An Interview with 2 Tony Hoare 3 ACM 1980 A.M. Turing Award Recipient 4 (Interviewer: Cliff Jones, Newcastle University) 5 At Tony’s home in Cambridge 6 November 24, 2015 7 8 9 10 CJ = Cliff Jones (Interviewer) 11 12 TH = Tony Hoare, 1980 A.M. Turing Award Recipient 13 14 CJ: This is a video interview of Tony Hoare for the ACM Turing Award Winners project. 15 Tony received the award in 1980. My name is Cliff Jones and my aim is to suggest 16 an order that might help the audience understand Tony’s long, varied, and influential 17 career. The date today is November 24th, 2015, and we’re sitting in Tony and Jill’s 18 house in Cambridge, UK. 19 20 Tony, I wonder if we could just start by clarifying your name. Initials ‘C. A. R.’, but 21 always ‘Tony’. 22 23 TH: My original name with which I was baptised was Charles Antony Richard Hoare. 24 And originally my parents called me ‘Charles Antony’, but they abbreviated that 25 quite quickly to ‘Antony’. My family always called me ‘Antony’, but when I went to 26 school, I think I moved informally to ‘Tony’. And I didn’t move officially to ‘Tony’ 27 until I retired and I thought ‘Sir Tony’ would sound better than ‘Sir Antony’. 28 29 CJ: Right. If you agree, I’d like to structure the discussion around the year 1980 when 30 you got the Turing Award. I think it would be useful for the audience to understand 31 just how much you’ve done since that award.
    [Show full text]
  • Literaturverzeichnis
    Literaturverzeichnis ABD+99. Dirk Ansorge, Klaus Bergner, Bernhard Deifel, Nicholas Hawlitzky, Christoph Maier, Barbara Paech, Andreas Rausch, Marc Sihling, Veronika Thurner, and Sascha Vogel: Managing componentware development – software reuse and the V-Modell process. In M. Jarke and A. Oberweis (editors): Advanced Information Systems Engineering, 11th International Conference CAiSE’99, Heidelberg, volume 1626 of Lecture Notes in Computer Science, pages 134–148. Springer, 1999, ISBN 3-540-66157-3. Abr05. Jean-Raymond Abrial: The B-Book. Cambridge University Press, 2005. AJ94. Samson Abramsky and Achim Jung: Domain theory. In Samson Abramsky, Dov M. Gabbay, and Thomas Stephen Edward Maibaum (editors): Handbook of Logic in Computer Science, volume 3, pages 1–168. Clarendon Press, 1994. And02. Peter Bruce Andrews: An introduction to mathematical logic and type theory: To Truth Through Proof, volume 27 of Applied Logic Series. Springer, 2nd edition, July 2002, ISBN 978-94-015-9934-4. AVWW95. Joe Armstrong, Robert Virding, Claes Wikström, and Mike Williams: Concurrent programming in Erlang. Prentice Hall, 2nd edition, 1995. Bac78. Ralph-Johan Back: On the correctness of refinement steps in program develop- ment. PhD thesis, Åbo Akademi, Department of Computer Science, Helsinki, Finland, 1978. Report A–1978–4. Bas83. Günter Baszenski: Algol 68 Preludes for Arithmetic in Z and Q. Bochum, 2nd edition, September 1983. Bau75. Friedrich Ludwig Bauer: Software engineering. In Friedrich Ludwig Bauer (editor): Advanced Course: Software Engineering, Reprint of the First Edition (February 21 – March 3, 1972), volume 30 of Lecture Notes in Computer Science, pages 522–545. Springer, 1975. Bau82. Rüdeger Baumann: Programmieren mit PASCAL. Chip-Wissen. Vogel-Verlag, Würzburg, 1982.
    [Show full text]
  • Adriaan Van Wijngaarden and the Start of Computer Science in the Netherlands
    Adriaan van Wijngaarden and the start of computer science in the Netherlands Jos Baeten, Centrum Wiskunde & Informatica and Institute for Logic, Language and Computation, UvA Adriaan van Wijngaarden and the start of computer science in the Netherlands Jos Baeten, Centrum Wiskunde & Informatica and Institute for Logic, Language and Computation, UvA Adriaan van Wijngaarden 2 November 1916 – 7 February 1987 Graduated TH Delft Mechanical Engineering 1939 PhD TH Delft on calculations for a ship propellor 1945 London February 1946: look at mathematical machines Stichting Mathematisch Centrum 11 February 1946 Mathematics as a service Pure mathematics department Statistics department Computing department (1947) Applied mathematics department (1948) 1 January 1947 head of computing department 1 January 1947 head of computing department ‘Girls of Van Wijngaarden’ 1947: in the UK, also USA Met Turing, Von Neumann, others Plantage Muidergracht 6 Automatische Relais Rekenmachine Amsterdam Tweede Boerhaavestraat 49 ARRA II N.V. Elektrologica, 1957 Algol 60 • In 1955, committee started on unified notation of computer programs • Friedrich Bauer, 1958, International Algebraic Language • 1959, Algorithmic Language, Van Wijngaarden and Dijkstra join • 1960 editor of Algol 60 report • Separation of hardware and software Algol 68 IFIP Working Group 2.1 taking the lead Starts formal language theory (Chomsky’s universal grammar) Van Wijngaarden grammars Reasoning about language and programs Some achievements 1958 started Nederlands RekenMachine Genootschap
    [Show full text]
  • Scaling Functional Synthesis and Repair
    Scaling Functional Synthesis and Repair Thèse N° 8716 Présentée le 11 janvier 2019 à la Faculté informatique et communications Laboratoire d’analyse et de raisonnement automatisés Programme doctoral en informatique et communications pour l’obtention du grade de Docteur ès Sciences par EMMANOUIL KOUKOUTOS Acceptée sur proposition du jury Prof. C. Koch, président du jury Prof. V. Kuncak, directeur de thèse Prof. S. Khurshid, rapporteur Prof. D. Marinov, rapporteur Prof. M. Odersky, rapporteur 2019 Acknowledgements First and foremost, I would like to thank my advisor Viktor Kuncak, for accepting me into his lab, and generously providing his guidance, knowledge, encouragement and support during my PhD studies. This thesis would not have been possible without him. Second, I would like to thank my thesis committee members Christoph Koch, Martin Odersky, Darko Marinov and Sarfraz Khurshid, for taking the time to evaluate my thesis, and for their valuable and extensive comments on it, which helped it improve greatly to its current form. Third, I would like to thank my colleagues Etienne Kneuss, Mukund Ragothaman, Ravishadran Kandhadai Madhavan, Régis Blanc, Mikael Mayer, Nicolas Voirol, Romain Edelmann, Eva Darulova, Andreas Pavlogiannis, Georg Schmid, Jad Hamsa, Romain Ruetschi, and Sarah Sallinger, for our collaboration, exchange of ideas, and the welcoming and creative atmosphere they maintained in the lab. A special thanks goes to Etienne for our great collaboration, and his guidance and patience when he was helping me acclimate during my first months in the lab. Also, I would like to thank Fabien Salvi, Yvette Gallay and Sylvie Jankow, for helping all of us to work unobstructed with their technical and administrative support.
    [Show full text]
  • O Caso Da Literatura Electrónica De Pedro Barbosa
    MESTRADO MULTIMÉDIA - ESPECIALIZAÇÃO EM TECNOLOGIAS EDIÇÕES CRÍTICAS DIGITAIS: O CASO DA LITERATURA ELECTRÓNICA DE PEDRO BARBOSA Carlos Filipe Lopes do Amaral M 2015 FACULDADES PARTICIPANTES: FACULDADE DE ENGENHARIA FACULDADE DE BELAS ARTES FACULDADE DE CIÊNCIAS FACULDADE DE ECONOMIA FACULDADE DE LETRAS Edições Críticas Digitais: O Caso da Literatura Electrónica de Pedro Barbosa Carlos Filipe Lopes do Amaral Mestrado em Multimédia da Universidade do Porto Orientador: Rui Torres (Professor Associado com Agregação da Faculdade de Ciências Humanas e Sociais da Universidade Fernando Pessoa) Co-orientador: João Correia Lopes (Professor Auxiliar da Faculdade de Engenharia da Universidade do Porto) 31 de Julho de 2015 c Carlos Amaral, 2015 Edições Críticas Digitais: O Caso da Literatura Electrónica de Pedro Barbosa Carlos Filipe Lopes do Amaral Mestrado em Multimédia da Universidade do Porto Aprovado em provas públicas pelo Júri: Presidente: Nuno Flores (Professor Auxiliar da Faculdade de Engenharia da Universidade do Porto) Vogal Externo: José Manuel Torres (Professor Associado da Faculdade de Ciências e Tecnologia da Universidade Fernando Pessoa) Orientador: Rui Torres (Professor Associado, com Agregação, da Faculdade de Ciências Humanas e Sociais da Universidade Fernando Pessoa) Resumo As edições críticas digitais são colecções de obras nascidas no seio digital, e operam como arquivos digitais — contemplando a interactividade e o comentário crítico. A literatura electrónica rege-se por uma multitude de práticas literárias que tira partido das capacidades e contextos proporcionados pelo computador — consequentemente, é o resultado ou produto da actividade literária realizada no computador. Pedro Barbosa, autor de literatura gerada por computador, é uma figura central no campo da literatura electrónica e na produção de obras de arte nascidas no meio digital especialmente pela sua presença remontar aos inícios da computação até às práticas de criação artística no computador vigentes na conjuntura tecnológica contemporânea.
    [Show full text]
  • An Extension of Isabelle/UTP with Simpl-Like Control Flow
    USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow Joshua Alexander Bockenek Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Masters of Science in Computer Engineering Binoy Ravindran, Chair Peter Lammich Robert P. Broadwater December 8, 2017 Blacksburg, Virginia Keywords: Formal Verification, Formal Methods, Isabelle, Unifying Theories of Programming, Verification Condition Generation © 2018, Joshua Alexander Bockenek USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow Joshua Alexander Bockenek (ABSTRACT) Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software. This thesis presents USIMPL, a component of the Orca project for formal verification that builds on Foster’s Isabelle/UTP with features of Schirmer’s Simpl in order to achieve a modular, scalable framework for deductive proofs of program correctness utilizing Hoare logic and Hoare-style algebraic laws of programming. This work is supported in part by the Office of Naval Research (ONR) under grants N00014- 17-1-2297 and N00014-16-1-2818, and the Naval Sea Systems Command (NAVSEA)/the Naval Engineering Education Consortium (NEEC) under grant N00174-16-C-0018. Any opinions, findings, and conclusions or recommendations expressed in this thesis are those of the author and do not necessarily reflect the views of ONR or NAVSEA/NEEC. USIMPL: An Extension of Isabelle/UTP with Simpl-like Control Flow Joshua Alexander Bockenek (GENERAL AUDIENCE ABSTRACT) Writing bug-free code is fraught with difficulty, and existing tools for the formal verification of programs do not scale well to large, complicated codebases such as that of systems software (OSes, compilers, and similar programs that have a high level of complexity but work on a lower level than typical user applications such as text editors, image viewers, and the like).
    [Show full text]
  • (Pdf) of the School of Squiggol: a History of the Bird−Meertens
    The School of Squiggol A History of the Bird{Meertens Formalism Jeremy Gibbons University of Oxford Abstract. The Bird{Meertens Formalism, colloquially known as \Squig- gol", is a calculus for program transformation by equational reasoning in a function style, developed by Richard Bird and Lambert Meertens and other members of IFIP Working Group 2.1 for about two decades from the mid 1970s. One particular characteristic of the development of the Formalism is fluctuating emphasis on novel `squiggly' notation: sometimes favouring notational exploration in the quest for conciseness and precision, and sometimes reverting to simpler and more rigid nota- tional conventions in the interests of accessibility. This paper explores that historical ebb and flow. 1 Introduction In 1962, IFIP formed Working Group 2.1 to design a successor to the seminal algorithmic language Algol 60 [4]. WG2.1 eventually produced the specification for Algol 68 [63, 64]|a sophisticated language, presented using an elaborate two- level description notation, which received a mixed reception. WG2.1 continues to this day; technically, it retains responsibility for the Algol languages, but practi- cally it takes on a broader remit under the current name Algorithmic Languages and Calculi. Over the years, the Group has been through periods of focus and periods of diversity. But after the Algol 68 project, the period of sharpest focus covered the two decades from the mid 1970s to the early 1990s, when what later became known as the Bird{Meertens Formalism (BMF) drew the whole group together again. It is the story of those years that is the subject of this paper.
    [Show full text]
  • Peter Landin Semantics Seminar 2020 Algol 60 @ 60
    Peter Landin Semantics Seminar 2020 Algol 60 @ 60 Tim Denvir Troy Astarte 1 Introduction: Rationale ⚫ Algol 60 is 60 years old. ⚫ Algol 60 was defined with semantics in mind. ⚫ Peter Landin’s formal semantics of Algol 60. ⚫ An example of burgeoning new interest in formal semantics of programming languages in 60-70s ⚫ So: an apposite topic for PL Semantics Seminar. 2 Content of seminar ⚫ Short history of Algol 60. ⚫ The authors of the Revised Report. ⚫ Relationship of Algol with formal ideas, λ-calculus. ⚫ Peter Landin’s approach to formal description. ⚫ Overview of semantics zeitgeist. ⚫ Other formal descriptions. ⚫ Fascination with Algol: why? ⚫ Postscript; quote from Wittgenstein in Algol 60 Report. 3 Short History of Algol 60 ⚫ Conference in Zurich 1958 ⚫ Preliminary Report: Algol 58/IAL, Comm ACM ⚫ Informal meeting in Mainz Nov. 1958 prompted: ⚫ Algol implementation conference (40) Copenhagen Feb. 1959: “hardware group” (character sets, input eqp) ⚫ Algol Bulletin ed. Peter Naur Regnecentralen Copenhagen 1959-88, 52 issues: discussion forum ⚫ European Algol conference Paris Nov. 1959 (c50): 4 January 1960 Conference 7 European representatives ⚫ Association Française de Calcul ⚫ British Computer Society ⚫ Gesellschaft für Angewandte Mathematik und Mechanik (GAMM) ⚫ Nederlands Rekenmachine Genootschap ⚫ (Learned Societies for Computer Science in Europe) 5 USA Contributions ⚫ Algol working groups on ACM Committee on Programming Languages ⚫ 7 representatives to Jan. 1960 conference after preparatory meeting in Boston Dec.1959 ⚫ (William Turanski killed in road accident just before Jan. 60 conference) ⚫ New draft Report developed from Preliminary Report, formed basis of Revised Report at Jan. 60 conference ⚫ Finally conference in Rome April 1962 to correct, eliminate ambiguities, clarify; ed.
    [Show full text]
  • Dijkstra's Crisis
    Dijkstra’s Crisis: The End of Algol and Beginning of Software Engineering, 1968-72 Thomas Haigh, [email protected], www.tomandmaria.com/tom Draft for discussion in SOFT-EU Project Meeting, September 2010 “In SHOT meetings and in the journals, it is surprising how few and far between critical references to specific historical arguments are: there is hardly any debate or even serious substantive disagreement.” – David Edgerton, 2010. In 1968 a NATO Software Engineering Conference was held in Garmisch, Germany. Attendees represented a cross section of those involved in programming work and its management. Having never met before they were shocked to realize that identical troubles plagued many different kinds of software. Participants agreed that a “software crisis” was raging. Programming projects were chronically late and over budget, yet often failed to produce useful software. They endorsed a new discipline of software engineering, its contents yet to be defined, as the solution to this crisis. A follow up conference, held in Rome the next year, failed to reach consensus on what specific techniques might constitute the core of this new discipline. Yet software engineering soon became the dominant identity to describe the work and management of programmers. That, at least, is the composite account one would gain from the almost identical paragraphs repeated again and again in historical works both scholarly and popular. But this growing mass of consensus is, I believe, built on sand. The historical significance of the 1968 NATO Conference, the demographics of its participants, its connection to prior and subsequent events, and its relationship to the software crisis are at risk of being fundamentally misinterpreted.
    [Show full text]