The Syntax of Programmnig Languages-A Survey

Total Page:16

File Type:pdf, Size:1020Kb

The Syntax of Programmnig Languages-A Survey The Syntax of Programmnig Languages-A Survey ROBERT W. FLOYD Summary-The syntactic rules for many programming languages of the way quotation marks are used in English, for the have been expressed by formal grammars, generally variants of same purpose, to distinguish phrase-structure grammars. The syntactic analysis essential to translation of programming languages can be done entirely me- The baby can say "one word" chanically for such languages. Major problems remain in rendering analyzers efficient in use of space and time and in finding fully satis- from factory formal grammars for present and future programming lan- guages. The baby can say one word. INTRODUCTION Names of phrase types appearing in the text are hyphen- ated to show explicitly that the separate words of a N RECENT YEARS, few programming languages name need have no individual meaning and that the designed for widespread use have escaped having name as a whole is used as a technical term, without the more orderly part of their formation rules and such connotations as its individual words may suggest. restrictions presented in one of several simple tabular The angular brackets enclosing a name in a grammatical forms, somewhat like the axioms of a formal mathe- rule share this function. A complete set of grammatical matical system. ALGOL, JOVIAL, FORTRAN, rules for a language written in a format equivalent to NELIAC, COBOL, BALGOL, MAC, APT, and their that of the example is a phrase-structure grammar offshoots have all been defined in such a fashion (see (PSG); a language definable by a PSG is a phrase- Sections A and B of the bibliography). For some of structure language (PSL).' these languages, the formalism is easy and natural. For In general, a phrase-structure grammar, taken as a set others, it is not; FORTRAN [A9} suffers needlessly, of definitions, provides a list of alternative constructions bound in the unaccustomed corsetry of her younger in a definition for each syntactic type, where each con- rival's design. Whatever the merits of formal grammars struction is a list of characters and syntactic type names. in general, some languages are best defined in words. A construction represents the set of phrases which can Where formal grammars are appropriate, however, be formed by replacing each syntactic type name with mathematical and linguistic analysis provides compilers a phrase of that type; the phrases of a certain type are of lower cost and high reliability, and theoretical all those represented by some construction in the defi- knowledge about the structure and value of the language nition of that type. There is usually a single syntactic itself. type, called "program" (or "sentence"), which is used PHRASE-STRUCTURE GRAMMARS in the definition of no other type; the set of phrases of this type is the language defined by the grammar. On The most representative and fruitful example of the the one hand, PSG's can define some languages of con- use of a formal grammar in defining a programming siderable complexity; on the other, such simple sets of language is the use of a phrase-structure grammar to strings as that consisting of 'abc,' 'aabbcc,' 'aaabbbccc,' specify most of the syntactic rules of ALGOL 60 [A7], etc., are demonstrably not definable by any phrase [A8], [B1], [B5] The form for grammatical rules used structure grammar [C4]. in the report which officially defines ALGOL 60 is It is evident that a complete definition of a pro- typified [Al] by gramming language may be expressed far more con- (for statement):: = (for clause) (statement) cisely by a PSG than by the corresponding English | statement). sentences and that it is humanly impossible to read or (label): (for write those sentences, with their hundreds of occur- This assertion can be read "A for-statement is defined rences of 'is defined to be,' 'followed by,' and 'or.' If a to be a for-clause followed by a statement, or a label phrase-structure grammar is nearly adequate to define followed by a colon ':' followed by a for-statement." a language, then most of the rules defining the language The symbol ' *: =' stands for 'is defined to be'; ' |' stands for 'or' and is used to separate alternative forms of the I The type of grammar described here is sometimes called a con- text-free phrase-structure grammar, as distinguished from a more gen- definiendum. The angular brackets'( )' are used to en- eral type of grammar, the context-dependent phrase-structure gram- close each name of a phrase type, distinguishing it as a mar. The latter has no known applications to programming languages, the term "phrase-structure" is not necessarily appropriate for a con- name, rather than the thing named. This is the reverse text-dependent grammar, and the term "context-free" has certain misleading implications; we will therefore use the short term "phrase- structure grammar" for what is sometimes also called a context-free Manuscript received Febrary 3, 1964; revised May 4, 1964. phrase-structure grammar [C6], simple phrase structure grammar The author is with Computer Associates, Inc., Wakefield, Mass. [Cl], or Type 2 grammar [C41. 346 Floyd: Syntax of Programming Languages 347 can be neatly and compactly listed without explanation, 5) 'John' followed by any verb followed by 'Mary' is conserving space, time, and clarity; attention may be a sentence. concentrated on the few syntactic rules which do not fit d) 'Loves' is a verb. the pattern of phrase definitions. 6) 'John loves Mary' is a sentence. As mentioned above, the rules of a PSG are analogous in a phrase structure has From this point of view, a sentence to axioms. One who somehow obtained a program language is the last line of a derivation from the symbol and an understanding of its structure can use a PSG '(sentence),' provided that no further substitutions are to prove the program is well formed and to demonstrate possible.3 The grammar is regarded not as an axiom the structure to others. The usefulness of a PSG to a sentences but as a device for programmer writing in the language, or to the compiler scheme for validating which translates it into machine language coding, is generating them. When a PSG is considered as a genera- A not us how tive grammar, its rules are commonly called productions. less apparent. grammar does tell to syn- The two viewpoints are substantially equivalent, but a it not us how to thesize specific program; does tell the generative viewpoint, by making explicit the process analyze a particular given program.2 In order to construct programs in a phrase-structure by which sentences are constructed, makes the grammar a A writer of may every rule of its grammar more tractable object of study. programs language, one interpret in a now be thought of as a device to generate as a permit to perform certain acts of substitution. PSL can a to each syntactic type of a grammar, sentences, with choices between alternatives governed, Assigning symbol the let us interpret each rule as allowing the substitution, for example, by the structure of a flow chart of for the definiendum, of any one of the alternative de- program. Not enough is known about linguistic behavior finientes. Applying these substitution rules repeatedly to specify the mechanism of choice in detail. to type A compact representation of a derivation is the syntax the symbol designating the syntactic 'program' for the derivation or 'sentence,' we arrive eventually at a sequence of sym- tree [C3], [Gi]; the syntax tree bols in which no further substitutions can take place; above is: this string is a program or sentence in the language, the process by which it was produced being an abbreviated (sentence) proof of its sentencehood. The symbols designating syn- (noun) (predicate) tactic types, for which substitutions may be made, are called nonterminal characters; those undefined symbols which form sentences are the terminal characters. (v (noun) Take, for instance, the grammar: John loves lary a) (sentence)-*(noun)(predicate) b) (predicate)-*>(verb)(noun) c) (noun)-*John| Mary In general, a syntax tree is like a genealogical tree for a d) (verb)--loves. family whose common ancestor is (sentence), where the immediate descendants (sons) of a symbol form one of Successive substitution, starting with (sentence), the alternatives of the definition of that symbol and gives the sequence where only the terminal characters fail to have de- 1) (sentence) scendants. Such a tree represents a derivation of the 2) (noun)(predicate) sentence formed by its terminal characters. It also 3) John (predicate) illustrates the structure of the sentence; the terminal 4) John (verb)(noun) descendants of any node on the tree form a phrase in 5) John (verb) Mary the sentence, of the type designated by that node. In a 6) John loves Mary. language satisfactorily described by its grammar, the phrases of a sentence are its meaningful units. Some This sequence, a derivation of the sentence "John compilers take advantage of this, creating a syntax tree loves Mary," is an abbreviation of the following proof: as a structured representation of the information con- 1) Any sentence is a sentence. tained in the source program. Suitable processes then a) A noun followed by a predicate is a sentence. translate the tree into a computer program, or a deri- 2) Any noun followed by any predicate is a sentence. vation tree for an equivalent sentence in another lan- c) 'John' is a noun. guage or a related sentence in the same language. 3) 'John' followed by any predicate is a sentence. SYNTAX-DIRECTED ANALYSIS b) A verb followed by a noun is a predicate. 4) 'John' followed by any verb followed by any noun A syntax-directed analyzer might be defined as any is a sentence.
Recommended publications
  • Typology of Programming Languages E Early Languages E
    Typology of programming languages e Early Languages E Typology of programming languages Early Languages 1 / 71 The Tower of Babel Typology of programming languages Early Languages 2 / 71 Table of Contents 1 Fortran 2 ALGOL 3 COBOL 4 The second wave 5 The finale Typology of programming languages Early Languages 3 / 71 IBM Mathematical Formula Translator system Fortran I, 1954-1956, IBM 704, a team led by John Backus. Typology of programming languages Early Languages 4 / 71 IBM 704 (1956) Typology of programming languages Early Languages 5 / 71 IBM Mathematical Formula Translator system The main goal is user satisfaction (economical interest) rather than academic. Compiled language. a single data structure : arrays comments arithmetics expressions DO loops subprograms and functions I/O machine independence Typology of programming languages Early Languages 6 / 71 FORTRAN’s success Because: programmers productivity easy to learn by IBM the audience was mainly scientific simplifications (e.g., I/O) Typology of programming languages Early Languages 7 / 71 FORTRAN I C FIND THE MEAN OF N NUMBERS AND THE NUMBER OF C VALUES GREATER THAN IT DIMENSION A(99) REAL MEAN READ(1,5)N 5 FORMAT(I2) READ(1,10)(A(I),I=1,N) 10 FORMAT(6F10.5) SUM=0.0 DO 15 I=1,N 15 SUM=SUM+A(I) MEAN=SUM/FLOAT(N) NUMBER=0 DO 20 I=1,N IF (A(I) .LE. MEAN) GOTO 20 NUMBER=NUMBER+1 20 CONTINUE WRITE (2,25) MEAN,NUMBER 25 FORMAT(11H MEAN = ,F10.5,5X,21H NUMBER SUP = ,I5) STOP TypologyEND of programming languages Early Languages 8 / 71 Fortran on Cards Typology of programming languages Early Languages 9 / 71 Fortrans Typology of programming languages Early Languages 10 / 71 Table of Contents 1 Fortran 2 ALGOL 3 COBOL 4 The second wave 5 The finale Typology of programming languages Early Languages 11 / 71 ALGOL, Demon Star, Beta Persei, 26 Persei Typology of programming languages Early Languages 12 / 71 ALGOL 58 Originally, IAL, International Algebraic Language.
    [Show full text]
  • Simulation Higher Order Language Requirements Study
    DOCUMENT RESDEE ED .162 661 IB 066 666 AUTHOR Goodenough, John B.; Eraun, Christine I. TITLE Simulation Higher Order ,Language Reguiresents Study. INSTITUTION' SofTech, Inc., Waltham, Mass. SPONS'AGENCY Air Force Human Resources Lab., Broca_APE,' Texas. REPORT NO AFHPI-TE-78-34 PUB DATE ,Aug 78 NOTE 229.; Not available in hard' copy due to iarginal legibility of parts of document AVAILABLE FROM'Superintendent of Docusents, U.S. Government Printing' Office, Washington, L.C. 20402 (1978-771-122/53) EDRS PRICE MF-$0.83 Plus Postage. EC Not Availatle from EDRS. DESCRIPTORS *Comparative Analysis; Computer Assisted Instruction; *Computer Programs; Evaluation Criteria; Military Training; *Needs Assessment; *Prograaing Iangbaqes; *Simulation IDENTIFIERS FORTRAN; IRCNMAN; JOVIAL; PASCAL ABSTRACT The definitions provided for high order language (HOL) requirements for programming flight/ training simulators are based on the analysis of programs written fcr.a variety of simulators. Examples drawn from these programs are used to justify' the need for certain HOL capabilities. A description of the general 'K..structure and organization of the TRONEAN requirements for the DOI) Common Language effort IS followed-tyditailed specifications of simulator HOL requirements., pvi, FORTRAN, JCVIAI J3E, JCVIAL.J73I, and PASCAL are analyzed to see how well" each language satisfies the simulator HOL requirements. Results indicate that PL/I and JOVIAL J3D are the best suited for simulator programming, chile TOBIRANis clearly the least suitable language. All the larguages failed to satisfy some simulator requirements and improvement modificationsare specified Analysis of recommended modifications shows:that PL/I is the m st easily modified language. (CMV) *********************************************************************** Reproductions suppliid by EDRS are the best that can be made from the original dccumett.
    [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]
  • W-5835 E TABLE of CONTENTS (CONT'd~)
    I - THE MITRE CORPORATION Working Paper W- 5835 aedford, Massachusetts Sheet 1 of 26 Sheets 1.1 Subject: BIBLIOGR,\PHY OF XD-1 DOCt.MENTATION (U) i (Project 220) To: Distribution List From: XD-1 Facility Office Dept: Issued at: Bedford, Massachusetts ', .....- . Date: �.o.?��.· Approved:_�-.,.+-.....;....__ _.._._ ..___ ·.·. _______ -=-_;--:aa...._____.. � J. A. Ishihara Contract No. AF-19 ( 628) 2390 - Release to: Distribution List ABSTRACT A reasonably complete and accurate bibliographical listing of XD-1 documentation has been compiled by t.he XD-1 Facility Office. '.Illi::J bibliography has b�en arranged both by subject and by document number. A SUQject listing and a numerical listing is �.nclu,d.ed in this docu.ment. A third listing, con­ tain:t,ng abstracts of each document, has been com­ piled and is also }ncluded in the document·. t' ·j Approved for public release. Distribution unlimited. 18-0742. © 2018 The MITRE Corporation. All rights reserved. AF Case number: 2018-0541 This.Working Poper, prepared for Corporation internal use, does not represent a corporate position, Reproduction or further dissemination is not authorh:ed, It has not been reviewed by Office of Secu�ity Review, Deparmient. of Defense, and therefore - is not for public release. TABLE OF. CONTENTS Page 1.0 Introduction............. 1 2.0 Subject Listing.of XD-.l· Documentation" . 2 2.1 Facility Office Information 2 2.2 Operational Procedures. 2 2.3 Accounting; 2 2.4 Programming Information 2 2.5 Equipment Checkout Program Systems. 2 2.6 Facility Program Systems. 3 2·7 utility Program Systems .
    [Show full text]
  • Concepts of Programming Languages, Eleventh Edition, Global Edition
    GLOBAL EDITION Concepts of Programming Languages ELEVENTH EDITION Robert W. Sebesta digital resources for students Your new textbook provides 12-month access to digital resources that may include VideoNotes (step-by-step video tutorials on programming concepts), source code, web chapters, quizzes, and more. Refer to the preface in the textbook for a detailed list of resources. Follow the instructions below to register for the Companion Website for Robert Sebesta’s Concepts of Programming Languages, Eleventh Edition, Global Edition. 1. Go to www.pearsonglobaleditions.com/Sebesta 2. Click Companion Website 3. Click Register and follow the on-screen instructions to create a login name and password Use a coin to scratch off the coating and reveal your access code. Do not use a sharp knife or other sharp object as it may damage the code. Use the login name and password you created during registration to start using the digital resources that accompany your textbook. IMPORTANT: This access code can only be used once. This subscription is valid for 12 months upon activation and is not transferable. If the access code has already been revealed it may no longer be valid. For technical support go to http://247pearsoned.custhelp.com This page intentionally left blank CONCEPTS OF PROGRAMMING LANGUAGES ELEVENTH EDITION GLOBAL EDITION This page intentionally left blank CONCEPTS OF PROGRAMMING LANGUAGES ELEVENTH EDITION GLOBAL EDITION ROBERT W. SEBESTA University of Colorado at Colorado Springs Global Edition contributions by Soumen Mukherjee RCC Institute
    [Show full text]
  • THE DEVELOPMENT of JOVIAL Jules L Schwartz Computer
    THE DEVELOPMENT OF JOVIAL Jules L Schwartz Computer Sciences Corp. 1. THE BACKGROUND One of the significant things that got the JOVIAL lan- guage and compiler work started was an article on 1.1 The Environmental and Personnel Setting Expression Analysis that appeared in the 1958 ACM Communications (Wolpe 1958). The fact that this was The time was late 1958. Computers that those who were actually quite a revelation to us at that time seems involved with the first JOVIAL project had been using interesting now. Since that day, of course, there have included the JOHNNIAC (built at Rand Corporation), the been many developments in the parsing of mathematical IBM AN/FSQ-7 (for SAGE), 701, and 704. A few had and logical expressions. However, that article was the worked with board wired calculators. Some had never first exposure many of us had to the subject. Some of programmed. For those using IBM, the 709 was the us who had just finished work on some other projects current machine. There were various other manufactur- (including SAGE) began experimentation with the proc- ers at the time, some of whom do not exist today as essing of complex expressions to produce an interme- computer manufacturers. diate language utilizing the techniques described. There was no compiler language at the time in our plans, but The vacuum tube was still in vogue, Very large memo- the idea of being able to understand and parse complex ries, either high speed direct access or peripheral expressions in itself was of sufficient interest to moti- storage, didn't exist, except for magnetic tape and vate our efforts.
    [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]
  • PROGRAMMING LANGUAGES TENTH EDITION This Page Intentionally Left Blank CONCEPTS of PROGRAMMING LANGUAGES TENTH EDITION
    CONCEPTS OF PROGRAMMING LANGUAGES TENTH EDITION This page intentionally left blank CONCEPTS OF PROGRAMMING LANGUAGES TENTH EDITION ROBERT W. SEBESTA University of Colorado at Colorado Springs Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto Delhi Mexico City Sao Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo Vice President and Editorial Director, ECS: Senior Production Project Manager: Marilyn Lloyd Marcia Horton Manufacturing Manager: Nick Sklitsis Editor in Chief: Michael Hirsch Operations Specialist: Lisa McDowell Executive Editor: Matt Goldstein Cover Designer: Anthony Gemmellaro Editorial Assistant: Chelsea Kharakozova Text Designer: Gillian Hall Vice President Marketing: Patrice Jones Cover Image: Mountain near Pisac, Peru; Marketing Manager: Yez Alayan Photo by author Marketing Coordinator: Kathryn Ferranti Media Editor: Dan Sandin Marketing Assistant: Emma Snider Full-Service Vendor: Laserwords Vice President and Director of Production: Project Management: Gillian Hall Vince O’Brien Printer/Binder: Courier Westford Managing Editor: Jeff Holcomb Cover Printer: Lehigh-Phoenix Color This book was composed in InDesign. Basal font is Janson Text. Display font is ITC Franklin Gothic. Copyright © 2012, 2010, 2008, 2006, 2004 by Pearson Education, Inc., publishing as Addison-Wesley. All rights reserved. Manufactured in the United States of America. This publication is protected by Copy- right, and permission should be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. To obtain permission(s) to use material from this work, please submit a written request to Pearson Education, Inc., Permissions Department, One Lake Street, Upper Saddle River, New Jersey 07458, or you may fax your request to 201-236-3290.
    [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]
  • Partial History of Programming Languages Based on Slides Originally Published by Thomas J
    15-292 History of Computing Partial History of Programming Languages ! Based on slides originally published by Thomas J. Cortina in 2004 for a course at Stony Brook University. Revised in 2013 by Thomas J. Cortina for a computing history course at Carnegie Mellon University. The first assembler l Assembler - a computer program for translating assembly language into executable machine code l Example: ADD R1, R2, R3 0110000100100011 l The EDSAC programming system was based on a subroutine library l commonly used functions that could be used to build all sorts of more complex programs l the first version, Initial Orders 1, was devised by David Wheeler, then a research student, in 1949 l Team published “The Preparation of Programs for an Electronic Digital Computer” l the only programming textbook then available l computers today still use Cambridge model for subroutines library The first compiler l A compiler is a computer program that translates a computer program written in one computer language (the source language) into a program written in another computer language (the target language). l Typically, the target language is assembly language l Assembler may then translate assembly language into machine code l Machine code are directions a computer can understand on the lowest hardware level (1s & 0s) l A-0 is a programming language for the UNIVAC I or II, using three- address code instructions for solving mathematical problems. l A-0 was the first language for which a compiler was developed. l It was produced by Grace Hopper's team at
    [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]
  • Programming Languages: History and Future
    Programming Languages: History and Future Jean E. Sammet IBM Corporation This paper discusses both the history and future of 1. Introduction programming languages (= higher level languages). Some of the difficulties in writing such a 1.1 Definition of Programming Languages history are indicated. A key part of the paper is a tree It is well known by now that there is no general showing the chronological development of languages agreement on the meaning of the term "programming and their interrelationships. Reasons for the prolifera- languages." In this paper the term is used interchange- tion of languages are given. The major languages are ably with "higher level languages," but even that does listed with the reasons for their importance. A section not solve the definition problem. Hence it is necessary on chronology indicates the happenings of the significant to specify that a programming language is considered previous time periods and the major topics of 1972. Key to be a set of characters and rules for combining them concepts other than specific languages are discussed. which have the following characteristics: (l) machine Key Words and Phrases: programming languages, code knowledge is unnecessary; (2) there is good poten- higher level languages, languages, history, future tial for conversion to other computers; (3) there is an directions, language interrelationships, programming instruction explosion (from one to many); and (4) language tree, programming language history, there is a notation which is closer to the original prob- programming language future lem than assembly language would be. CR Categories: 1.2, 4.2 1.2 Purpose and Scope of Paper Programming languages are almost as old as ACM, since the latter started in 1947 while the former started in 1952 with Short Code for UNIVAC.
    [Show full text]