Docworks PDF 600

Total Page:16

File Type:pdf, Size:1020Kb

Docworks PDF 600 P!l)_n.ted a.t .the Mathematic.al Cen.tJie, 413 K/f./.JMlaan, Am6.te.Jtdam. The Mathematic.al Cen.tJie , 6011.nded .the 11-.th 06 Feb'1.U1V1.IJ 1946, ,u., a non­ p!W 6U w:Ut.u.:tio n aJm.ing a.t .the pJWmo:Uo n o 6 pwr.e ma.the.ma:Ue!i and ill., appUc.ationJ.,. 1.t ,u., -6poY11.>01Led by .the Ne.the.Jtland6 Gove.Jtnmen.t .th!Wu.gh .the Ne..the.Jtland6 O!Lganiza:Uon 6DIL .the Advanc.e.men.t 06 PUILe Re-6e.a!Lc.h {Z.W.0.). MATHEMATICAL CENTRE TRACTS 134 PROCEEDINGS INTERNATIONAL CONFERENCE ON ALGOL 68 J.C. van VLIET (ed.) H. WUPPER (ed.) RECHENZENTRUM DER RUHR-UNIVERSITAT BOCHUM, BRD, MARCH 30-31, 1981 MATHEMATISCH CENTRUM AMSTERDAM 1981 1980 Mathematics·subjectclassification: 68-06,68B10,68B20 Co~uting Reviews: 4.22,1.52,4.34,4.12,5.23 l. INTRODUCTION "What can we do with ALGOL 68?" is the question raised by the chairman of the Standing Subcommittee on ALGOL 68 Support in the first contribution to this conference. The three main topics of the conference suggest three possible answers to this question: one can teach the language, implement it, and apply it. The papers collected in these proceedings deal with various aspects of teaching, implementation, and applications. They do not attempt to fully answer the question of what can be done, but they hopefully will provide some useful pieces of information, both to those who want to learn more about the,language, and to those who are actually involved in problems in the areas addressed. In several respects, ALGOL 68 has not been very successful. It is not heavily used except at a number of sites in Europe (most notably the UK), its new terminology has not been widely adopted, it is difficult to implement (or isn't it). But many people who know the language feel that its use to write programs reflects only one aspect, and that the more important advantages stem from its orthogonal design, carefully chosen notation, and clarity. ALGOL 68 offers a unified view of both the user program and its environ­ ment. This combination, together with its carefully chosen notation, offers a good basis for teaching the language, and for understanding programming in' general. ALGOL 68 is the only language which offers such a complete, setting, which allows one to develop programs independent of the outside world. It ·is our firm belief that many of the everyday problems that occur in programming are easily.solved when the benefits of ALGOL 68 are taken into account. This conference may be regarded as an attempt to reveal some of these benefits. The Program Committee for this conference consisted of H. Ehlich (Ruhr-Universitat Bochum, BRD) C.H.A. Koster (University of Nijmegen, The Netherlands) A.D. Mc,Gettrick (University of Strathclyde, Glasgow, UK) S.G. van der Meulen (University of Utrecht, The Netherlands) I L. Trilling (Universite de Rennes, France) J.C. van Vliet (Mathematical Centre, Amsterdam, The Netherlands) H. Wupper (Ruhr-Universitat Bochum, BRD). .1..1. During the refereeing process, much help was obtained from P. Bakkus, A. Couvert, D. Grune, P. le Guernic, R.B. Hunter, H. Jonkers, K. Kleine, L.G.L.T. Meertens, F. Ployette, A. Quere and J. Voiron. We thank the Director of the computer centre of the Ruhr-Universitat Bochum, Prof.Dr. H. Ehlich, and his colleagues, who took care of the local organization. We thank the Mathematical Centre for the opportunity to publish these proceedings in their series Mathematical Centre Tracts and all those at the Mathematical Centre who have contributed to its technical realization. J .c. van Vliet H. Wupper .l.l.l CONTENTS Session 1 (Monday, March 30, A.M.) What can we do with ALGOL 68 (invited lecture) S .G. van der Meu1en • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • . 1 Syntactic errors made by beginners using an ALGOL 68 subset J.. Andre & J. Barre 17 A comparative evaluation of ALGOL 68 for programming instruction P.R. Eggert & R .C. Uzgalis • • • • • • • • • • • • • • .. • • • • • • • • • • • • • • • • • • • • • • • 33 Session 2 (Monday, March 30, P.M.) Teaching with ALGOL 68 in Dresden (invited lecture) G. Stiller • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 45 Semantic analysis and synthesis in the ALGOL 68 R 4000 compiler H. Loeper, H. -J. Jakel & H. Pietsch ••••••••••••••••• , •••••• • •• • • • 59 Essay on copying K. Wright • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 81 On the design of an abstract machine for a portable ALGOL 68 compiler L.G.L.T. Meertens • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 97 Session 3 (Tuesday, March 31, A.M.) An implementation of modular compilation in ALGOL 68 (invited lecture) G .J. Finnie & M .c. Thomas •••••••••••••••••••••••••••••••••••••••• 119 Programming languages for a course in data structures V.J. Rayward-Smith ••••••••••••••••••••••••••••••••••••••••••••••• 143 Context-free grammars and derivation trees in ALGOL 68 V. Linnemann • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 16 7 Session 4 (Tuesday, March 31, P.M.) An ALGOL 68 prelude for the implementation of test generation algorithms S.D. Butland ••••••••••••••••••••••••••••••••••••••••••••••••••••• 183 A programming system for interval arithmetic in ALGOL 68 G. Gunther & G. Marquardt • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 201 Teaching with ALGOL 68, in Manchester (invited lecture) C.H. Lindsey 217 List of .addresses of authors ••••• ; •.••••••••••••••••••••••••••••.••••• 231 WHAT CAN WE DO WITH ALGOL 68 S.G. van der MEULEN ABSTRACT Despite its power, orthogonal design, and other nice features, ALGOL68 has not become a widely used language. Some possible reasons for this neglection by the computing community are commented upon. The paper also gives a short history of the way the language developed, and sketches a possible future. Finally, the place and tasks of the Subcommittee on ALGOL68 support are elaborated upon. 2 1. WHAT CAN WE DO WITH ALGOL68? The most obvious answer to this question - and also the most natural one - of course is: We can write programs in it. And, beyond any doubt, this was precisely what we had in mind - when we designed the language, went to the limit in an attempt to define it with the utmost rigour, intro­ duc~d it informally "for the uninitiated reader", implemented it with a keen eye for possible improvements, reconsidered and revised it with a keen and open eye for possible implementations, then went to an even further limit in redefining it with even more rigour and less consideration for the uninitia­ ted, reintroduced it in an informal revision, implemented it again (and now complete and unabridged) and started to promulgate it, modelled its transput cleaning an (in spite of all efforts) still clumsy cluster of often overspe­ cifying I/O- and file-manipulating routines, explored its possibilities through subsets and supersets and by extending it in its semantic prelude for particular application areas------- and we wrote papers and books on it: primers, guides, treatises, conference proceedings and textbooks on various aspects such as two-level grammars, orthogonal design, recursive modes and mode-equivalencing, new implementation techniques, possible ex­ tensions --- and so on etcetera. But did we write programs in it? An often heard objection is: There are no good compilers. But there are. And not only on CDC-CYBERs - also on IBM370s, on DEC20 and PDP11, on ICLs and other systems. Their availability may leave something to be de­ sired (in no small measure a matter of demand), but they exist and some of them are pretty good - for teaching purposes or for production aims or for both._ One of the benefits of an ambitious and well-designed language is, that the circle of ~ts implementers is limited to competent and ambitious experts. As to demand and supply: it is a proven fact that manufacturers can be coerced into implementing the language (CDC) or supporting an exist­ ing implementation (DEC). It is - at least partly - up to those who want to write programs in it. Another ~llegation is: There are no easy (and get-at-able) books on the language and its use. But again: there are. In the small library of our small computer science department we have as many titles on ALGOL68 as on any otQer programming language, including PASCAL which is a heavily support­ ed language in our university. Yes, but they are difficult for the beginning programmer. Are they, all of them? It is true that The Report is unreadable for the non-expert and producing headaches with almost any one else. It is 3 also true that the other, more or less officially suppo~ted IFIP-WG2.1 "companion volume" - the Informal Introduction - is not a primer for the programming novice: it rather is another (and pretty precise) description of the whole language, and only informal as compared to that monstrous monument of formal rigour which is the Report. But it is equally true that most of the other primers, practical guides, introductions, tutorials and what else do we have, have been written for and are quite easy readable by any student and any intellectual who is able to think on a level not below FORTRAN. And yet: we don't write programs in it. Or do we? Let us try to de­ limit more or less who are "we". Apparently, the "we"_ of the first para­ graph is the small group of those who designed the language (IFIP-WG2.1 & affiliates), implemented it for the first time (the Malvern people of the Royal Radar Establishment), revised it (WG2.1 & affiliates & many respond­ ers), implemented it again (several groups and even individuals) and wrote about it (see bibliography) - not so many amongst them actually wrote pro­ grams in it. I nciw'wake up to the fact that I wrote and tried my first ALGOL68 program in 1975 (shortly after the release of the CDC-CYBER imple­ mentation). The "we" of the ALGOL68-users is another "we": it is a very small subset of the total "we" that constitutes tjJ.e computing community.
Recommended publications
  • 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]
  • Docworks PDF 600
    Minimax estimation in regression and random censorship models Citation for published version (APA): Belitser, E. N. (2000). Minimax estimation in regression and random censorship models. (CWI tracts; Vol. 127). Centrum voor Wiskunde en Informatica. Document status and date: Published: 01/01/2000 Document Version: Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers) Please check the document version of this publication: • A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website. • The final author version and the galley proof are versions of the publication after peer review. • The final published version features the final layout of the paper including the volume, issue and page numbers. Link to publication General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal.
    [Show full text]
  • Writing Cybersecurity Job Descriptions for the Greatest Impact
    Writing Cybersecurity Job Descriptions for the Greatest Impact Keith T. Hall U.S. Department of Homeland Security Welcome Writing Cybersecurity Job Descriptions for the Greatest Impact Disclaimers and Caveats • Content Not Officially Adopted. The content of this briefing is mine personally and does not reflect any position or policy of the United States Government (USG) or of the Department of Homeland Security. • Note on Terminology. Will use USG terminology in this brief (but generally translatable towards Private Sector equivalents) • Job Description Usage. For the purposes of this presentation only, the Job Description for the Position Description (PD) is used synonymously with the Job Opportunity Announcement (JOA). Although there are potential differences, it is not material to the concepts presented today. 3 Key Definitions and Concepts (1 of 2) • What do you want the person to do? • Major Duties and Responsibilities. “A statement of the important, regular, and recurring duties and responsibilities assigned to the position” SOURCE: https://www.opm.gov/policy-data- oversight/classification-qualifications/classifying-general-schedule-positions/classifierhandbook.pdf • Major vs. Minor Duties. “Major duties are those that represent the primary reason for the position's existence, and which govern the qualification requirements. Typically, they occupy most of the employee's time. Minor duties generally occupy a small portion of time, are not the primary purpose for which the position was established, and do not determine qualification requirements” SOURCE: https://www.opm.gov/policy-data- oversight/classification-qualifications/classifying-general-schedule-positions/positionclassificationintro.pdf • Tasks. “Activities an employee performs on a regular basis in order to carry out the functions of the job.” SOURCE: https://www.opm.gov/policy-data-oversight/assessment-and-selection/job-analysis/job_analysis_presentation.pdf 4 Key Definitions and Concepts (2 of 2) • What do you want to see on resumes that qualifies them to do this work? • Competency.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Compiler Construction
    Compiler construction PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 10 Dec 2011 02:23:02 UTC Contents Articles Introduction 1 Compiler construction 1 Compiler 2 Interpreter 10 History of compiler writing 14 Lexical analysis 22 Lexical analysis 22 Regular expression 26 Regular expression examples 37 Finite-state machine 41 Preprocessor 51 Syntactic analysis 54 Parsing 54 Lookahead 58 Symbol table 61 Abstract syntax 63 Abstract syntax tree 64 Context-free grammar 65 Terminal and nonterminal symbols 77 Left recursion 79 Backus–Naur Form 83 Extended Backus–Naur Form 86 TBNF 91 Top-down parsing 91 Recursive descent parser 93 Tail recursive parser 98 Parsing expression grammar 100 LL parser 106 LR parser 114 Parsing table 123 Simple LR parser 125 Canonical LR parser 127 GLR parser 129 LALR parser 130 Recursive ascent parser 133 Parser combinator 140 Bottom-up parsing 143 Chomsky normal form 148 CYK algorithm 150 Simple precedence grammar 153 Simple precedence parser 154 Operator-precedence grammar 156 Operator-precedence parser 159 Shunting-yard algorithm 163 Chart parser 173 Earley parser 174 The lexer hack 178 Scannerless parsing 180 Semantic analysis 182 Attribute grammar 182 L-attributed grammar 184 LR-attributed grammar 185 S-attributed grammar 185 ECLR-attributed grammar 186 Intermediate language 186 Control flow graph 188 Basic block 190 Call graph 192 Data-flow analysis 195 Use-define chain 201 Live variable analysis 204 Reaching definition 206 Three address
    [Show full text]
  • 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 ............................
    [Show full text]
  • List of Programming Languages
    List of programming languages The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in alphabetical order. Dialects of BASIC, esoteric programming languages, and markup languages are not included. 0–9ABCDEFGHIJKLMNOPQRSTUVWXYZ Contents: See also A A.NET ALGOL W A-0 System Alice A+ Alma-0 ABAP AmbientTalk ABC Amiga E ABC ALGOL AMOS ACC AMPL Accent AngelScript Ace DASL (Distributed Application Apache Pig latin Specification Language) Apex Action! APL ActionScript App Inventor for Android's visual block Actor language Ada AppleScript Adenine APT Agda Arc Agilent VEE ARexx Agora Argus AIMMS Assembly language Aldor AutoHotkey Alef AutoIt ALF AutoLISP / Visual LISP ALGOL 58 Averest ALGOL 60 AWK ALGOL 68 Axum B B BASIC Babbage Batch file (Windows/MS-DOS) Ballerina bc Bash BCPL BeanShell BlooP Bertrand Boo BETA Boomerang BLISS Bosque Blockly C C – ISO/IEC 9899 CLU C-- (C minus minus) CMS-2 C++ (C plus plus) – ISO/IEC 14882 COBOL – ISO/IEC 1989 C* CobolScript – COBOL Scripting language C# (C sharp) – ISO/IEC 23270 Cobra C/AL CoffeeScript Caché ObjectScript ColdFusion C Shell (csh) COMAL Caml Combined Programming Language (CPL) Cayenne COMIT CDuce Common Intermediate Language (CIL) Cecil Common Lisp (also known as CL) Cesil COMPASS Céu Component Pascal Ceylon Constraint Handling Rules (CHR) CFEngine COMTRAN Cg Cool Ch Coq Chapel Coral 66 Charm CorVision CHILL COWSEL CHIP-8 CPL chomski Cryptol ChucK Crystal Cilk Csound CL (IBM) Cuneiform Claire Curl
    [Show full text]
  • Mathematical Software 5
    Copyright © 1977, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. BIBLIOGRAPHY ON NUMERICAL SOFTWARE by Bo Einarsson Permanent affilation: FORSVARETS FORSKNINGSANSTALT (FOA) National Defence Research Institute Department 2/Proving Grounds Box 98, S-147 00 Tumba, Sweden Memorandum No. UCB/ERL M77/19 25 March 1977 » e - % ELECTRONICS RESEARCH LABORATORY College of Engineering University of California, Berkeley 94720 BIBLIOGRAPHY ON NUMERICAL SOFTWARE by Bo Einarsson Permanent affilation: FORSVARETS FORSKNINGSANSTALT (FOA) National Defence Research Institute Department 2/Proving Grounds Box 98, S-147 00 Tumba, Sweden Memorandum No. UCB/ERL M77/19 25 March 1977 BIBLIOGRAPHY ON NUMERICAL SOFTWARE by Bo Einarsson Permanent affilation: FO*RSVARETS FORSKNINGSANSTALT (FOA) National Defence Research Institute Department 2/Proving Grounds Box 98, S-147 00 Tumba, Sweden Memorandum No. UCB/ERL M77/19 25 March 1977 Abstract; This bibliography has been written at the request of the IFIP Working Group on Numerical Software (IFIP WG .2.5), and is intended to serve both members of the working group and others intent on improving numerical software. It has been divided into twenty-one different areas. Within each area the references are given in alphabetical order by the first author.
    [Show full text]
  • Organization of Programming Languages
    CMSC 330: Organization of Programming Languages A Brief History of Programming Languages CMSC330 Fall 2020 Babylon • Founded roughly 4000 years ago – Located near the Euphrates River, 56 miles south of Baghdad, Iraq • Historically influential in ancient western world • Cuneiform writing system, written on clay tablets – Some of those tablets survive to this day – Those from Hammurabi dynasty (1800-1600 BC) include mathematical calculations • (Also known for Code of Hammurabi, an early legal code) A Babylonian Algorithm A [rectangular] cistern. The height is 3, 20, and a volume of 27, 46, 40 has been excavated. The length exceeds the width by 50. You should take the reciprocal of the height, 3, 20, obtaining 18. Multiply this by the volume, 27, 46, 40, obtaining 8, 20. Take half of 50 and square it, obtaining 10, 25. Add 8, 20, and you get 8, 30, 25 The square root is 2, 55. Make two copies of this, adding [25] to the one and subtracting from the other. You find that 3, 20 [i.e., 3 1/3] is the length and 2, 30 [i.e., 2 1/2] is the width. This is the procedure. – Donald E. Knuth, Ancient Babylonian Algorithms, CACM July 1972 The number n, m represents n*(60k) + m*(60k-1) for some k More About Algorithms • Euclid’s Algorithm (Alexandria, Egypt, 300 BC) – Appeared in Elements • See http://aleph0.clarku.edu/~djoyce/elements/bookVII/propVII2.html – Computes gcd of two integers let rec gcd a b = if b = 0 then a else gcd b (a mod b) • Al-Khwarizmi (Baghdad, Iraq, 780-850 AD) – Al-Khwarizmi Concerning the Hindu Art of Reckoning – Translated into
    [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]
  • Facing up to Faults Brian Randell
    ReminiscencesReminiscences ofof WhetstoneWhetstone ALGOLALGOL Brian Randell DIKU, 30 September 2010 1 In Summer 1957 I had a vacation job at IBMIBM’s’s offices at 101 Wigmore Street, London These offices housed (and proudly displayed) an IBM 650 – their only computer in the UK DIKU, 30 September 2010 2 IBM 650 – a very successful and easy to program drumdrum-based-based decimal computer DIKU, 30 September 2010 3 In Autumn 1957 Mike Kelly and I arrived (from Imperial College) at English Electric Atomic Power Division, Whetstone, Leicestershire DIKU, 30 September 2010 4 Frank Whittle, inventor of the jet engine – whose Power Jet Company’sCompany’s factory was at Whetstone in WW2 DIKU, 30 September 2010 5 By the 1960s Whetstone was the site of EEEE’s’s Atomic Power Division (APD) and their Mechanical Engineering Laboratory (MEL) DIKU, 30 September 2010 6 In APD analogue computing was (at this time) ““king”king” – and the 15001500-amplifier-amplifier SATURN was being developed DIKU, 30 September 2010 7 We were hired to program nuclear reactor codes for APDAPD’s’s and MEL’sMEL’s first digital computer, a DEUCE DIKU, 30 September 2010 8 DEUCE was based on Pilot ACE, so inherited Alan TuringTuring’s’s cleverclever “optimum”“optimum” programming scheme DIKU, 30 September 2010 9 EASICODEEASICODE • DEUCE was difficult to program (well), and even more difficult to compile for. • Numerous interpreters were produced – and we invented a compromise scheme of “automatic programming” – EASICODE. • We nearly got fired because of it, but its success led to my becoming head of an Automatic Programming Section, with authority to “do something” for the upcoming KDF9.
    [Show full text]
  • Evolution of the Major Programming Languages Genealogy of Common Languages Zuse’S Plankalkül
    CHAPTER 2 Evolution of the Major Programming Languages Genealogy of Common Languages Zuse’s Plankalkül • Designed in 1945, but not published until 1972 • Never implemented • Advanced data structures • floating point, arrays, records • Invariants Plankalkül Syntax • An assignment statement to assign the expression A[4] + 1 to A[5] | A + 1 => A V | 4 5 (subscripts) S | 1.n 1.n (data types) Minimal Hardware Programming: Pseudocodes • What was wrong with using machine code? • Poor readability • Poor modifiability • Expression coding was tedious • Machine deficiencies--no indexing or floating point Pseudocodes: Short Code • Short Code developed by Mauchly in 1949 for BINAC computers • Expressions were coded, left to right • Example of operations: 01 – 06 abs value 1n (n+2)nd power 02 ) 07 + 2n (n+2)nd root 03 = 08 pause 4n if <= n 04 / 09 ( 58 print and tab Pseudocodes: Speedcoding • Speedcoding developed by Backus in 1954 for IBM 701 • Pseudo ops for arithmetic and math functions • Conditional and unconditional branching • Auto-increment registers for array access • Slow! • Only 700 words left for user program Pseudocodes: Related Systems • The UNIVAC Compiling System • Developed by a team led by Grace Hopper • Pseudocode expanded into machine code • David J. Wheeler (Cambridge University) • developed a method of using blocks of re-locatable addresses to solve the problem of absolute addressing IBM 704 and Fortran • Fortran 0: 1954 - not implemented • Fortran I:1957 • Designed for the new IBM 704, which had index registers and floating point
    [Show full text]