Latest Results from the Procedure Calling Test, Ackermann's Function
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
FEBRUARY 1981 R
THE ISSN 004-8917 AUSTRALIAN COMPUTER JOURNAL VOLUME 13, NUMBER 1, FEBRUARY 1981 r CONTENTS INVITED PAPER 1-6 Software and Hardware Technology for the ICL Distributed Array Processor R.W. GOSTICK ADVANCED TUTORIALS 7-12 On Understanding Binary Search B.P. KIDMAN 13-23 Some Trends in System Design Methodologies I.T. HAWRYSZKIEWYCZ SHORT COMMUNICATIONS 24-25 NEBALL and FINGRP: New Programs for Multiple Nearest- Neighbour Analysis D.J. ABEL and W.T. WILLIAMS 26 Program INVER Revisited D.J. ABEL and W.T. WILLIAMS 27-28 A Comparison between PASCAL, FORTRAN and PL/1 D.J. KEWLEY SPECIAL FEATURES 29 Book Reviews 30-31 Letters to the Editor 32 Call for Papers V J Published for Australian Computer Society Incorporated Registered for Posting as a Publication — Category B “This wouldn't have happened, Fenwick, with a Tandem NonStop™ System," When your computers down, are you out or business? You can bank on it. Timing couldn’t be worse. No question about it. Your busiest season. Customers pounding for service. When you’re on a Tandem NonStop™ System, your information All it takes is one small failure somewhere in the system. One files and your processes are protected from contamination in a disc or disc controller. One input/output channel. way no other system can match. We’ve built in safeguards other For want of an alternative, the system is down and business is suppliers can only dream about. You’ve heard the war stories about lost. Sometimes forever. restart and restore data base on other systems. They’re not exaggerations, but they can be a thing of the past. -
ALGOL 60 Programming on the Decsystem 10.Pdf
La Trobe University DEPARTMENT OF MATHEMATICS ALGOL 60 Programming on the DECSystem 10 David Woodhouse Revised, August 1975 MELBOURNE, AUSTRALIA ALGOL 60 Programming on the DECSystem 10 David Woodhouse Revised, August 1975 CE) David Woodhouse National Library of Australia card number and ISBN. ISBN 0 85816 066 8 INTRODUCTION This text is intended as a complete primer on ALGOL 60 programming. It refers specifically to Version 4 of the DECSystem 10 implementation. However, it avoids idiosyncracies as far as possible, and so should be useful in learning the language on other machines. The few features in the DEC ALGOL manual which are not mentioned here should not be needed until the student is sufficiently advanced to be using this text for reference only. Exercises at the end of each chapter illustrate the concepts introduced therein, and full solutions are given. I should like to thank Mrs. K. Martin and Mrs. M. Wallis for their patient and careful typing. D. Woodhouse, February, 1975. CONTENTS Chapter 1 : High-level languages 1 Chapter 2: Languagt! struct.ure c.f ALGOL 6n 3 Chapter 3: Statemp.nts: the se'1tences {'\f the language 11 Chapter 4: 3tandard functions 19 Chapter 5: Input an~ Outp~t 21 Chapter 6: l>rray~ 31 Chapter 7 : For ane! ~hil~ statements 34 Chapter 8: Blocks anr! ',: ock sc rll,~ turr. 38 Chapter 9: PrOCe(:l1-:-~S 42 Chapter 10: Strin2 vp·jaLlps 60 Chapter 11: Own v~rj;lI'.i..es clOd s~itc.hef, 64 Chapter 12: Running ~nd ,;ebllggi"1g 67 Bibliography 70 Solutions to Exercises 71 Appendix 1 : Backus NOlUlaj F\:q'm 86 Appendix 2 : ALGuL-like languages 88 Appenclix 3. -
A History of C++: 1979− 1991
A History of C++: 1979−1991 Bjarne Stroustrup AT&T Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT This paper outlines the history of the C++ programming language. The emphasis is on the ideas, constraints, and people that shaped the language, rather than the minutiae of language features. Key design decisions relating to language features are discussed, but the focus is on the overall design goals and practical constraints. The evolution of C++ is traced from C with Classes to the current ANSI and ISO standards work and the explosion of use, interest, commercial activity, compilers, tools, environments, and libraries. 1 Introduction C++ was designed to provide Simula’s facilities for program organization together with C’s effi- ciency and flexibility for systems programming. It was intended to deliver that to real projects within half a year of the idea. It succeeded. At the time, I realized neither the modesty nor the preposterousness of that goal. The goal was modest in that it did not involve innovation, and preposterous in both its time scale and its Draco- nian demands on efficiency and flexibility. While a modest amount of innovation did emerge over the years, efficiency and flexibility have been maintained without compromise. While the goals for C++ have been refined, elaborated, and made more explicit over the years, C++ as used today directly reflects its original aims. This paper is organized in roughly chronological order: §2 C with Classes: 1979– 1983. This section describes the fundamental design decisions for C++ as they were made for C++’s immediate predecessor. §3 From C with Classes to C++: 1982– 1985. -
The BCPL Cintsys and Cintpos User Guide by Martin Richards [email protected]
The BCPL Cintsys and Cintpos User Guide by Martin Richards [email protected] http://www.cl.cam.ac.uk/users/mr10/ Computer Laboratory University of Cambridge Revision date: Thu 19 Aug 16:16:54 BST 2021 Abstract BCPL is a simple systems programming language with a small fast compiler which is easily ported to new machines. The language was first implemented in 1967 and has been in continuous use since then. It is a typeless and provides machine independent pointer arithmetic allowing a simple way to represent vectors and structures. BCPL functions are recursive and variadic but, like C, do not allow dynamic free variables, and so can be represented by just their entry addresses. There is no built-in garbage collector and all input-output is done using library calls. This document describes both the single threaded BCPL Cintcode System (called Cintsys) and the Cintcode version of the Tripos portable operating system (called Cintpos). It gives a definition of the standard BCPL language including the recently added features such as floating point expressions and constructs involving operators such as <> and op:=. This manual describes an extended version of BCPL that include some of the features of MCPL, mainly concerning the pattern matching used in function definitions. This version can be compiled using the mbcpl command. This manual also describes the standard library and running environment. The native code version of the system based on Sial and the Cintpos portable operating system are also described. Installation instructions are included. Since May 2013, the standard BCPL distribution supports both 32 and 64 bit Cintcode versions. -
Cs 98 Algol W Implementat Ion by H. Bauer S. Becker S
CS 98 ALGOL W IMPLEMENTAT ION BY H. BAUER S. BECKER S. GRAHAM TECHNICAL REPORT NO. CS 98 MAY 20, 1968 COMPUTER SC IENCE DEPARTMENT School of Humanities and Sciences STANFORD UNIVERS llTY ALGOL W IMPLEMENTATION* -- H, Bauer S. Becker S. Graham * This research is supported in part by the National Science Foundation under grants GP-4053 and ~~-6844. -ALGOL -W IMPLEMENTATION Table -.of Contents ,, 1, Introduction . ..~.........*0.~.**.e.....*.....".....* XI. General Organization . ..os.*..e.~*....~****.*..*.. 3 lX1. Overall Design . ..*.0~....~..~e~eo~o.e...e.....*~~.... 4 A. Principal Design Considerations . ..*......** 4 B. Run-Time Program and Data Segmentation ., ,,,... 6 C. Pass One . ..~D..O......~e~~.*~.*~.....~.. 7 D. Pass Two . ..*..eOC~O.4....*~~..~...~..~~....~ 8 1. Description of Principles and -=. Main Tasks .*0*.*.......0~,00*..*..* 8 2. Parsing Algorithm . ...*......**.* 8 3* Error Recovery .0....~..~.~.~.,~,~~~, 9 4. Register Analysis . ..*.......*.... 11 L- 5* Tables *.....@.,..*......e..*.*.y...* 13 6. Output ,.......*..*0..00..0*~~..~... 13 E. Pass Three . ..0......*....e...e..e.e........*, 16 L l-v. Compiler Details . ..~..~~~...~~~~.~~.....~..~... 17 A. Run-Time Organization ..~*0**~..*~...~...*~..., 17 1. Program and Data Segmentation ,,.,., 17 2. Addressing Conventions . ..*.9..*..** 20 30 Block Marks and Procedure Marks ,.., 20 4. Array Indexing Conventions . ..I.# 22 5. Base Address Table and Lirikage to System Routines . ..****..o....*.. 23 6. Special Constants and Error Codes ,. 24 Register Usage ..OI.OI.O,,..O..L,..~ 27 ;3** Record Allocation and Storage Reclamation .0.0.~.~*0*~0..~~~.**, 27 B. Pass We r....oc.o....o....o..~.*..~*.,.,.....* 33 1. Table Formats Internal to Pass One . ..0...*ee..o...Q....*.~.* 3c 2. The Output String Representing an ALGOL W Program l . -
50 Years of Pascal Niklaus Wirth the Programming Language Pascal Has Won World-Wide Recognition
50 Years of Pascal Niklaus Wirth The programming language Pascal has won world-wide recognition. In celebration of its 50th birthday I shall remark briefly today about its origin, spread, and further development. Background In the early 1960's, the languages Fortran (John Backus, IBM) for scientific, and Cobol (Jean Sammet, IBM and DoD) for commercial applications dominated. Programs were written on paper, then punched on cards, and one waited for a day for the results. Programming languages were recognized as essential aids and accelerators of the hard process of programming. In 1960, an international committee published the language Algol 60. It was the first time that a language was defined by concisely formulated constructs and by a precise, formal syntax. Already two years later it was recognized that a few corrections and improvements were needed. Mainly, however, the range of applications should be widened, because Algol 60 was intended for scientific calculations (numerical mathematics) only. Under the auspices of IFIP a Working Group (WG 2.1) was established to tackle this project. The group consisted of about 40 members with almost the same number of opinions and views about what a successor of Algol should look like. There ensued many discussions, and on occasions the debates ended even violently. Early in 1964 I became a member, and soon was requested to prepare a concrete proposal. Two factions had developed in the committee. One of them aimed at a second, after Algol 60, milestone, a language with radically new, untested concepts and pervasive flexibility. The other faction remained more modest and focused on realistic improvements of known concepts. -
5. the Implementation of Algol W
5. THE IMPLEMENTATION OF ALGOL W The two preceding chapters outline the data and control structures which appear with minor variations in most implementations of Algol-like languages, and they suggest how mechanisms for providing debugging facilities can be superimposed upon such structures. By emphasizing the generality of certain ideas, however, those chapters obscure the many crucial and often nontrivial problems of detail which must be solved for a particular language and implementation. This and subsequent chapters describe the internal structure of an implemented debugging system, which is based upon the Algol W language and the IBM System/360, IBM System/370, or ICL System 4 hardware. Various design problems are pinpointed and their solutions are described. Some of these are of general interest; others are specific to Algol W or the System/360 and are mentioned primarily to suggest the kinds of difficulties other designers should anticipate. This chapter sketches the underlying implementation of Algol W. It illustrates the application of some of the ideas in Chapter 3 and provides information necessary for understanding subsequent chapters. It also attempts to demonstrate that many features of the Algol W language and System/360 hardware naturally lead to design decisions which, as subsequent chapters show, simplify the implementation of useful debugging aids. The treatment of detail is intentionally selective; very cursory attention is given to those features of the compiler and object code which either are quite standard or are unrelated to the provision of debugging tools. A more thorough, although rather obsolete, description of the compiler is available elsewhere [Bauer 68]. -
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. -
July 9Th Leader
Navigator browser [Sept 18] America", after the owner of the soon became the industry Seattle business park housing July 9th leader. Nintendo’s US operation, Mario Segale, demanded payment of a Andreessen authored a popular late rental bill. op-ed piece for The Wall Street ICL Formed Journal in August 2011, “Why There is, of course, no donkey in July 9, 1968 Software Is Eating the World”. “Donkey Kong”, so why “donkey”? Miyamoto apparently International Computers wanted to include “donkey” to Limited (ICL) was a large British convey stubbornness. When he computer company created first suggested it, he was through the merger of several laughed at, but the name stuck. companies, including International Computers and Tabulators (ICT [Feb 27]), English Electric Leo Marconi Tron Released (EELM), and Elliott Automation July 9, 1982 [Oct 00]. EELM was itself a merger of the computer Tron (or TRON) is a 1982 sci-fi divisions of English Electric film directed by Steven [May 10], LEO [Sept 5], and Lisberger, and partly inspired by Marconi [Dec 11]. his love of Pong [Nov 29]. Jeff Bridges, a loveably roguish The hope of the UK’s Labour programmer, is transported into Government was that ICL could the nightmarish software world compete with major world of a mainframe. manufacturers like IBM, and for Marc Andreessen (2008). Photo a while it did quite well. by Joi. CC BY 2.0. Tron was one of the first movies to make ‘extensive’ use of Its most successful product line computer animation – about 20 was the ICL 2900 series A 2015 New Yorker piece, minutes worth, CGI was used for announced on October 9, 1974. -
The BCPL Reference Manual
MASSACHUSETTS INSTITUTE OF TECHNOLOGY PROJECT MAC Memorandum-M-352 July 21, 1967 To: Project MAC Participants From: Martin Richards Subject: The BCPL Reference Manual ABSTRACT BCPL is a simple recursive programming language designed for compiler writing and system programming: it was derived from true CPL (Combined Programming Language) by removing those features of the full language which make compilation difficult namely, the type and mode matching rules and the variety of definition structures with their associated scope rules. 0.0 Index 1.0 Introduction 2.0 BCPL Syntax 2.1 Hardware Syntax 2.1:1 BCPL Canonical Symbols 2.1.2 Hardware Conventions and Preprocessor Rules 2.2 Canonical Syntax 3.0 Data Items 3.1 Rvalues, Lvalues and Data Items 3.2 Types 4.0 Primary Expressions 4.1 Names 4.2 String Constants 4.3 Numerical Constants 4.4 True and False 4.5 Bracketted Expressions 4.6 Result Blocks 4.7 Vector Applications 4.8 Function Applications 4.9 Lv Expressions 4.10 Rv Expressions 5.0 Compound Expressions 5.1 Arithmetic Expressions 5.2 Relational Expressions 5.3 Shift Expressions 5.4 Logical Expressions 5.5 Conditional Expressions 6.0 Commands 6.1 Assignment Commands 6.2 Simple Assignment Commands 6.3 Routine Commands 6.4 Labelled Commands 6.5 Goto Commands 6.6 If Commands 6.7 Unless Commands 6.8 While Commands 6.9 Until Commands 6.10 Test Commands 6.11 Repeated Commands 6.12 For Commands 6.13 Break Commands 6.14 Finish Commands 6.15 Return Commands 6.16 Resultis Commands 6.17 Switchon Commands 6.18 Blocks 7.0 Definitions 7.1 Scope Rules 7.2 Space Allocation and Extent of Data Items 7.3 Global Declarations 7.4 Manifest Declarations 7.5 Simple Definitions 7.6 Vector Definitions 7.7 Function Definitions 7.8 Routine Definitions 7.9 Simultaneous Definitions 8.0 Example Program 1.0 Introduction 1. -
Principles and Practice of Database Systems Macmillan Computer Science Series Consulting Editor Professor F
Principles and Practice of Database Systems Macmillan Computer Science Series Consulting Editor Professor F. H. Sumner, University of Manchester S. T. Allworth, Introduction to Real-time Software Design Ian O. Angell, A Practical Introduction to Computer Graphics R. E. Berry and B. A. E. Meekings, A Book on C G. M. Birtwistle, Discrete Event Modelling on Simula T. B. Boffey, Graph Theory in Operations Research Richard Bornat, Understanding and Writing Compilers J. K. Buckle, The ICL 2900 Series J. K. Buckle, Software Configuration Management J. C. Cluley, Interfacing to Microprocessors Robert Cole, Computer Communications Derek Coleman, A Structured Programming Approach to Data Andrew J. T. Colin, Fundamentals ofComputer Science Andrew J. T. Colin, Programming and Problem-solving in Algol 68 S. M. Deen, Principles and Practice ofDatabase Systems P. M. Dew and K. R. James, Introduction to Numerical Computation in Pascal M. R. M. Dunsmuir and G. J. Davies, Programming the UNIX System K. C. E. Gee, Introduction to Local Area Computer Networks J. B. Gosling, Design ofArithmetic Units for Digital Computers Roger Hutty, Fortran for Students Roger Hutty, Z80 Assembly Language Programming for Students Roland N. Ibbett, The Architecture ofHigh Performance Computers P. Jaulent, The 68000 - Hardware and Software M. J. King and J. P. Pardoe, Program Design UsingJSP - A Practical Introduction H. Kopetz, Software Reliability , E. V. Krishnamurthy, Introductory Theory ofComputer Science Graham Lee, From Hardware to Software: an introduction to computers A. M. Lister, Fundamentals ofOperating Systems, third edition G. P. McKeown and V. J. Rayward-Smith,Mathematicsfor Computing Brian Meek, Fortran, PL/1 and the Algols Derrick Morris, An Introduction to System Programming - Based on the PDP11 Derrick Morris and Roland N. -
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 ............................