Revised Report on the Algorithmic Language ALGOL 68 Edited By: A
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
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. -
Internet Engineering Jan Nikodem, Ph.D. Software Engineering
Internet Engineering Jan Nikodem, Ph.D. Software Engineering Theengineering paradigm Software Engineering Lecture 3 The term "software crisis" was coined at the first NATO Software Engineering Conference in 1968 by: Friedrich. L. Bauer Nationality;German, mathematician, theoretical physicist, Technical University of Munich Friedrich L. Bauer 1924 3/24 The term "software crisis" was coined at the first NATO Software Engineering Conference in 1968 by: Peter Naur Nationality;Dutch, astronomer, Regnecentralen, Niels Bohr Institute, Technical University of Denmark, University of Copenhagen. Peter Naur 1928 4/24 Whatshouldbe ourresponse to software crisis which provided with too little quality, too late deliver and over budget? Nationality;Dutch, astronomer, Regnecentralen, Niels Bohr Institute, Technical University of Denmark, University of Copenhagen. Peter Naur 1928 5/24 Software should following an engineering paradigm NATO conference in Garmisch-Partenkirchen, 1968 Peter Naur 1928 6/24 The hope is that the progress in hardware will cure all software ills. The Oberon System User Guide and Programmer's Manual. ACM Press Nationality;Swiss, electrical engineer, computer scientist ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser 7/24 However, a critical observer may notethat software manages to outgrow hardware in size and sluggishness. The Oberon System User Guide and Programmer's Manual. ACM Press Nationality;Swiss, electrical engineer, computer scientist ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser 8/24 Wirth's computing adage Software is getting slower more rapidly than hardware becomes faster. Nationality;Swiss, electronic engineer, computer scientist ETH Zürich, University of California, Berkeley, Stanford University University of Zurich. Xerox PARC. -
Stichting Mathematisch Centrum Kruislaan 413 1098 SJ Amsterdam
stichting mathematisch ~ centrum MC AFDELING INFORMATICA IW 189/81 DECEMBER (DEPARTMENT OF COMPUTER SCIENCE) L.G.L.T. MEERTENS & J.C. VAN VLIET ON THE MC ALGOL 68 COMPILER kruislaan 413 1098 SJ amsterdam Ptunted a.t :the Ma.themazlc.ai. Centlte, 413 KP'.L<,6laa.n, Amh:tvu:J.am. The Ma.thema.Uc.ai. Cen.tfle , 6ou.nded :the 11-:th 06 FebJuuVLy 1946, hi a non p1Lo6U .ln.6.tltuti.cm ai.mlng a.t :the pMmo.tlon 06 puJLe ma.themati.C!i and .lt6 app.Ue,a,tlon.6. 1:t hi .6pon601Led by :the Ne:theld.an.d6 Govell.nment :thlLOugh :the Ne:thelli.and-6 Ongan,[zazlon 6olL :the Advanc.ement 06 PU/Le RueaJr.c.h (Z.W.O.). 1980 Mathematics subject classification: 68B20 ACM-Computing Reviews-category: 4.12 On the MC ALGOL 68 compiler by L.G.L.T. Meertens & J.C. van Vliet ABSTRACT From 1969 until 1980, research has been done at the Mathematical Centre regarding various aspects of ALGOL 68 implementation. This has resulted in many publications, each treating an aspect in isolation. Several of these publications deal with issues arising in the construc tion of a portable ALGOL 68 compiler for the full language, including the Standard Hardware Representation and the modules and separate compilation facility. These publications deal especially with the first stages: the construction of a parser, and the last stage: an abstract ALGOL 68 machine. The purpose of the present report is to indicate where these various results would find their place in the construction of an ALGOL 68 compiler. -
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. -
Boolean Matrix in the Matrix Equation (19)
General Disclaimer One or more of the Following Statements may affect this Document This document has been reproduced from the best copy furnished by the organizational source. It is being released in the interest of making available as much information as possible. This document may contain data, which exceeds the sheet parameters. It was furnished in this condition by the organizational source and is the best copy available. This document may contain tone-on-tone or color graphs, charts and/or pictures, which have been reproduced in black and white. This document is paginated as submitted by the original source. Portions of this document are not fully legible due to the historical nature of some of the material. However, it is the best reproduction available from the original submission. Produced by the NASA Center for Aerospace Information (CASI) C f I l 1 ^o } Technical Report 69-86 March 1969 Design Automation by the Computer Design Language by Yaohan Cho Professor fr N he computer time used was supported by the National Aeronautics and Space Administration under Grant NsO 398 to the Computer Science Center of the University of Maryland. /i Abstract A Computer Design Language (CDL) has been developed for facilitating design automation of digital computers. When the functional organizatl.on and sequential operation of a digital computer are conceived and specified by the CDL, this d CDL description is called a Macro design. The macro design is highly descriptive in computer elements. it describes precisely and concisely what the computer is expected to do functionally step by step. -
CWI Scanprofile/PDF/300
ADAPI'ED: ADJUSTED; widened; rowed; NINE : EIGHI' plus one. hipped; voided. NONPROC : PLAIN ; format ; procedure ADIC : PRIORITY; monadic. with PARAMETERS MOID; reference to ADJUSTED: FITI'ED; procedured; united. NONPROC; structured with FIEIDS; .ALPHA : a ; b ; c ; d ; e ; f ; g ; h ; row of NONPROC ; UNITED • i ; j ; k ; 1 ; m ; n ; o ; p ; q ; NONROW: NONSTOWED; structured with r; S; t; U; V; W; X; y; z. FIEIDS. ANY: KIND; suppressible KIND; NONSTOWED : TYPE ; UNITED. replicatable KIND; NarION: .ALPHA; NOTION .ALPHA. replicatable suppressible KIND. NUMBER : one ; 'IWO ; THREE ; FOUR ; BITS : structured with row of boolean FIVE ; SIX ; SEVEN ; EIGHI' ; NINE. field LENGTHETY letter aleph. PACK : pack ; package. BOX : IMOODSETY box. PARAMETER: MODE parameter. BYTES: structured with row of character PARAMETERS : PARAMETER ; field LENGTHETY letter aleph. PARAMETERS and PARAMETER.. CLAUSE: MOID clause. PARAMETY : with PARAMETERS ; EMPTY. CLOSED: closed; collateral; conditional. PHRASE: declaration; CLAUSE. COERCEND : MOID FORM. PLAIN: INTREAL; boolean; character. COMPLEX: structured with real field PRAM: procedure with IMODE parameter letter r letter e and real field and RMODE parameter MOID; letter i letter m. procedure with RMODE parameter MOID. DIGIT: digit FIGURE. PRIMITIVE : integral ; real ; boolean EIGHI' : SEVEN plus one. character; format. EMPTY : . PRIORITY: priority NUMBER. FEAT : finn ; weak ; soft. PROCEDURE: procedure PARAMETY MOID. FIEID : MODE field TAG. REAL: LONGSETY real. FIEIDS FIEID ; FIEIDS and FIEID. REFETY: reference to; EMPTY. FIGURE: zero; one; two; three; four; RFIEIDSETY: and FIEIDS; EMPTY. five; six; seven; eight; nine. RMODE: MODE. FITI'ED: dereferenced; deprocedured. RMOODSETY : RMOODSETY and MOOD EMPTY. FIVE : FOUR plus one. ROWS: row of; ROWS row of. FORESE: ADIC formula; cohesion; base. -
A DATA DEFINITION FACILITY for PROGRAMMING LANGUAGES By
A DATA DEFINITION FACILITY FOR PROGRAMMING LANGUAGES by T. A. Standish Carnegie Institute of Technology ....... PittsbUrgh, Pennsylvania May 18, 1967 Submitted to the Carnegie Institute of Technology ....... in partial fulfillment of the requirements for the degree of Doctor of Philosophy This work was supported by the Advanced Research Projects Agency of the Office of the Secretary of Defense (SD-146). Abstract This dissertation presents a descriptive notation for data structures which is embedded in a programming language in such a way that the resulting language behaves as a synthetic tool for describing data and processes in a number of application areas. A series of examples including formulae, lists, flow charts, Algol text, files, matrices, organic molecules and complex variables is presented to explore the use of this tool. In addition, a small formal treatment is given dealing with the equivalence of evaluators and their data structures. -ii- Table of Contents Title Page ....................... i Abstract ........................ ii Table of Contents .................... iii Acknowledgments .................... v Chapter I. Introduction .................. 1 Chapter II. A Selective Review of the Work of Others ...... 17 Chapter III. The Data Definition Facility ........... 25 1. Chapter Summary .............. 25 2. General Description .............. 25 3. Component Descriptions ........... 30 4. Elementary Descriptors ........... 34 5. Modified Descriptors ............ 40 6. Descriptor Formulae ............ 48 7. Declaring Descriptor Variables. and Descriptor Procedures ......... 51 8. Predicates, Selectors, Constructors and Declarations ............. 53 9. Constructors ............... 53 10. Selectors ................. 58 11. Predicates ................ 60 12. Declarations ............... 64 13. Reference Variables, Pointer Expressions and the Contents Operation ......... 65 14. Overlay Assignments, Sharing of Structures and Copying of Structures .......... 68 - iii- Table of Contents, Continued 15. -
Regular Expressions
Regular Expressions A regular expression describes a language using three operations. Regular Expressions A regular expression (RE) describes a language. It uses the three regular operations. These are called union/or, concatenation and star. Brackets ( and ) are used for grouping, just as in normal math. Goddard 2: 2 Union The symbol + means union or or. Example: 0 + 1 means either a zero or a one. Goddard 2: 3 Concatenation The concatenation of two REs is obtained by writing the one after the other. Example: (0 + 1) 0 corresponds to f00; 10g. (0 + 1)(0 + ") corresponds to f00; 0; 10; 1g. Goddard 2: 4 Star The symbol ∗ is pronounced star and means zero or more copies. Example: a∗ corresponds to any string of a’s: f"; a; aa; aaa;:::g. ∗ (0 + 1) corresponds to all binary strings. Goddard 2: 5 Example An RE for the language of all binary strings of length at least 2 that begin and end in the same symbol. Goddard 2: 6 Example An RE for the language of all binary strings of length at least 2 that begin and end in the same symbol. ∗ ∗ 0(0 + 1) 0 + 1(0 + 1) 1 Note precedence of regular operators: star al- ways refers to smallest piece it can, or to largest piece it can. Goddard 2: 7 Example Consider the regular expression ∗ ∗ ((0 + 1) 1 + ")(00) 00 Goddard 2: 8 Example Consider the regular expression ∗ ∗ ((0 + 1) 1 + ")(00) 00 This RE is for the set of all binary strings that end with an even nonzero number of 0’s. -
Technical Standard COBOL Language
Technical Standard COBOL Language NICAL H S C T A E N T D A R D [This page intentionally left blank] X/Open CAE Specification COBOL Language X/Open Company, Ltd. December 1991, X/Open Company Limited All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior permission of the copyright owners. X/Open CAE Specification COBOL Language ISBN: 1 872630 09 X X/Open Document Number: XO/CAE/91/200 Set in Palatino by X/Open Company Ltd., U.K. Printed by Maple Press, U.K. Published by X/Open Company Ltd., U.K. Any comments relating to the material contained in this document may be submitted to X/Open at: X/Open Company Limited Apex Plaza Forbury Road Reading Berkshire, RG1 1AX United Kingdom or by Electronic Mail to: [email protected] X/Open CAE Specification (1991) Page : ii COBOL Language Contents COBOL LANGUAGE Chapter 1 INTRODUCTION 1.1 THE X/OPEN COBOL DEFINITION 1.2 HISTORY OF THIS DOCUMENT 1.3 FORMAT OF ENTRIES 1.3.1 Typographical Conventions 1.3.2 Terminology Chapter 2 COBOL DEFINITION 2.1 GENERAL FORMAT FOR A SEQUENCE OF SOURCE PROGRAMS 2.2 GENERAL FORMAT FOR NESTED SOURCE PROGRAMS 2.2.1 Nested-Source-Program 2.3 GENERAL FORMAT FOR IDENTIFICATION DIVISION 2.4 GENERAL FORMAT FOR ENVIRONMENT DIVISION 2.5 GENERAL FORMAT FOR SOURCE-COMPUTER-ENTRY 2.6 GENERAL FORMAT FOR OBJECT-COMPUTER-ENTRY 2.7 GENERAL FORMAT FOR SPECIAL-NAMES-CONTENT 2.8 GENERAL FORMAT FOR FILE-CONTROL-ENTRY 2.8.1 -
A Complete Bibliography of Publications in Science of Computer Programming
A Complete Bibliography of Publications in Science of Computer Programming Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 E-mail: [email protected], [email protected], [email protected] (Internet) WWW URL: http://www.math.utah.edu/~beebe/ 23 July 2021 Version 2.85 Title word cross-reference .NET [1085, 1074]. 0 [195, 291, 202, 572, 183, 515, 265, 155, 192, 231, 243, 514, 245, 1980, 295, 156, 151, 206, 1 + 118 [2359]. 10 [91]. $102.50 [267, 268]. 146, 203, 213, 289, 285, 286, 287, 219, 244, 11 [95]. 12 [101]. 13 [103]. 14 [107]. 15 [112]. 207, 246, 182, 229, 153, 321, 296, 217, 208, 16 [117]. 18 [125]. 19 [131]. 2 [43]. 20 [147]. 297, 193, 180, 298, 67, 204, 267, 268, 194, 21 [160]. 22 [178]. 23 [190]. 24 [242]. 3 [47]. 216, 320, 181, 317, 145, 214, 266, 269, 397, 3=2 [693]. $31.25 [320]. 4 [54]. 5 [61]. 6 [66]. 169, 574, 390, 215, 173, 1976, 227, 185, 575, + 2 7 [72]. $74.25 [318]. 8 [77]. [2065, 2428]. 226, 318, 270, 201, 288, 166, 205, 196, 284, 3 [466]. [1492]. 1 [944]. fun [1352]. SCR [1723]. 230, 247, 248, 249, 250, 524]. 0-06-042225-4 M jj [1894]. CSP B [1280]. ∆IC [879]. E3 [180]. 0-12-064460-6 [214]. 0-12-274060-2 [523]. j [1050, 1534]. k [1890, 2529]. λ [146]. -
CMPSCI 250 Lecture
CMPSCI 250: Introduction to Computation Lecture #29: Proving Regular Language Identities David Mix Barrington 6 April 2012 Proving Regular Language Identities • Regular Language Identities • The Semiring Axioms Again • Identities Involving Union and Concatenation • Proving the Distributive Law • The Inductive Definition of Kleene Star • Identities Involving Kleene Star • (ST)*, S*T*, and (S + T)* Regular Language Identities • In this lecture and the next we’ll use our new formal definition of the regular languages to prove things about them. In particular, in this lecture we’ll prove a number of regular language identities, which are statements about languages where the types of the free variables are “regular expression” and which are true for all possible values of those free variables. • For example, if we view the union operator + as “addition” and the concatenation operator ⋅ as “multiplication”, then the rule S(T + U) = ST + SU is a statement about languages and (as we’ll prove today) is a regular language identity. In fact it’s a language identity as regularity doesn’t matter. • We can use the inductive definition of regular expressions to prove statements about the whole family of them -- this will be the subject of the next lecture. The Semiring Axioms Again • The set of natural numbers, with the ordinary operations + and ×, forms an algebraic structure called a semiring. Earlier we proved the semiring axioms for the naturals from the Peano axioms and our inductive definitions of + and ×. It turns out that the languages form a semiring under union and concatenation, and the regular languages are a subsemiring because they are closed under + and ⋅: if R and S are regular, so are R + S and R⋅S. -
Some Aspects of Semirings
Appendix A Some Aspects of Semirings Semirings considered as a common generalization of associative rings and dis- tributive lattices provide important tools in different branches of computer science. Hence structural results on semirings are interesting and are a basic concept. Semi- rings appear in different mathematical areas, such as ideals of a ring, as positive cones of partially ordered rings and fields, vector bundles, in the context of topolog- ical considerations and in the foundation of arithmetic etc. In this appendix some algebraic concepts are introduced in order to generalize the corresponding concepts of semirings N of non-negative integers and their algebraic theory is discussed. A.1 Introductory Concepts H.S. Vandiver gave the first formal definition of a semiring and developed the the- ory of a special class of semirings in 1934. A semiring S is defined as an algebra (S, +, ·) such that (S, +) and (S, ·) are semigroups connected by a(b+c) = ab+ac and (b+c)a = ba+ca for all a,b,c ∈ S.ThesetN of all non-negative integers with usual addition and multiplication of integers is an example of a semiring, called the semiring of non-negative integers. A semiring S may have an additive zero ◦ defined by ◦+a = a +◦=a for all a ∈ S or a multiplicative zero 0 defined by 0a = a0 = 0 for all a ∈ S. S may contain both ◦ and 0 but they may not coincide. Consider the semiring (N, +, ·), where N is the set of all non-negative integers; a + b ={lcm of a and b, when a = 0,b= 0}; = 0, otherwise; and a · b = usual product of a and b.