
The World of Programming Languages
Springer (Publisher)
Published on 16. December 1986
Book
Paperback/Softback
XVI, 360 pages
978-0-387-96440-9 (ISBN)
Description
The earth, viewed through the window of an airplane, shows a regularity and reptition of features, for example, hills, valleys, rivers, lakes, and forests. Nevertheless, there is great local variation; Vermont does not look like Utah. Similarly, if we rise above the details of a few programming languages, we can discern features that are common to many languages. This is the programming language landscape; the main features include variables, types, control structures, and input/output. Again, there is local variation; Pascal does not look like Basic. This work is a broad and comprehensive discussion of the principal features of the major programming languages. A Study of Concepts The text surveys the landscape of programming languages and its features. Each chapter concentrates on a single language concept. A simple model of the feature, expressed as a mini-language, is presented. This allows us to study an issue in depth and relative isolation. Each chapter concludes with a discussion of the way in which the concept is incorporated into some well-known languages. This permits a reasonably complete coverage of language issues.
More details
Series
Edition
Softcover reprint of the original 1st ed. 1987
Language
English
Place of publication
New York
United States
Target group
Professional and scholarly
Research
Illustrations
14 s/w Abbildungen
XVI, 360 p. 14 illus.
Dimensions
Height: 235 mm
Width: 155 mm
Thickness: 21 mm
Weight
575 gr
ISBN-13
978-0-387-96440-9 (9780387964409)
DOI
10.1007/978-1-4612-4692-3
Schweitzer Classification
Other editions
Additional editions

Michael Marcotty | Henry Ledgard
The World of Programming Languages
E-Book
12/2012
Springer
€117.69
Available for download
Content
Preface.- Acknowledgements.- 1. Introduction.- 1.1 The Building of the Tower of Babel.- 1.2 What Is a Programming Language?.- 1.3 Why Study Programming Languages?.- 1.4 What Should We Look for in a Language?.- 1.5 Language Design Issues.- 1.6 The Study of Programming Languages.- Further Reading.- 2. Elements of a Programming Language.- 2.1 Informal Description of Mini-language Core.- 2.2 Informal Semantics of Mini-language Core.- 2.3 Language Design and the Programming Process.- 2.4 The Definition of Programming Languages.- 2.5 The Formal Description of Syntax.- 2.6 Other Context-free Syntax Definitions.- Further Reading.- 3. Names, Locations, and Values.- 3.1 Mini-language Ref.- 3.2 Declarations.- 3.3 Assignment.- 3.4 Statements as Expressions.- 3.5 Where to Look: Algol 68, Smalltalk.- Further Reading.- 4. Control Structures.- 4.1 Mini-language Control.- 4.2 Basic Control Structures and Flowgraphs.- 4.3 Theorems on Control Structures.- 4.4 Other One-in, One-out Control Structures.- 4.5 The Goto Statement and Label Values.- 4.6 Conclusions.- 4.7 Where to Look: Pascal, Ada.- Further Reading.- 5. Data Types.- 5.1 Mini-language Type.- 5.2 The Meaning of Type.- 5.3 Primitive Types.- 5.4 Array Types.- 5.5 Record Types.- 5.6 Type Checking.- 5.7 Where to Look: Fortran, PL/I.- Further Reading.- 6. Input and Output.- 6.1 Mini-language Format.- 6.2 Varieties of Input-output Specifications.- 6.3 Communication with the Outside World.- 6.4 Where to Look: Fortran, Cobol, Ada.- Further Reading.- 7. Procedures and Parameters.- 7.1 Mini-language Procedures.- 7.2 Procedures as Abstractions.- 7.3 Arguments and Parameters.- 7.4 Value-returning Procedures.- 7.5 Coroutines.- 7.6 Where to Look: PL/I, Ada.- Further Reading.- 8. Nesting and Scope.- 8.1 Mini-language Scope.- 8.2 The Idea of Scope.- 8.3 Storage Allocation.- 8.4 Dynamic Scope.- 8.5 Where to Look: Pascal, PL/I, APL.- Further Reading.- 9. Definition of New Data Types.- 9.1 Mini-language Typedef.- 9.2 Type Definitions.- 9.3 Definition of Structured Types.- 9.4 User Defined Operators.- 9.5 Where to Look: Pascal, Algol 68.- Further Reading.- 10. Dynamically Varying Structures.- 10.1 Mini-language Structures.- 10.2 Dynamically Varying Data Structures.- 10.3 Pointers.- 10.4 Design Criteria for Data Structures.- 10.5 Dynamic Allocation of Storage.- 10.6 Where to Look: PL/I, Pascal, Ada.- Further Reading.- 11. Exception Handling.- 11.1 Mini-language Exceptions.- 11.2 Exceptions.- 11.3 Issues in Exception Handling.- 11.4 Where to Look: PL/I, Ada.- Further Reading.- 12. Parallel Processing.- 12.1 Mini-language Parallel.- 12.2 A First Solution to the Decoding Problem.- 12.3 Putting a Buffer in a Task.- 12.4 Interrupting.- 12.5 Issues in Parallel Processing.- 12.6 Where to Look: Concurrent Pascal, Modula-2, Ada.- Further Reading.- 13. Separately Compiled Modules.- 13.1 Mini-language Modules.- 13.2 Packaging Subprograms.- 13.3 Abstract Data Types.- 13.4 Where to Look: PL/I, Modula 2, Ada, Smalltalk.- Further Reading.- 14. The Swamp of Complexity.- 14.1 The Forms of Complexity.- 14.2 Escaping from the Swamp.- References.