Synopses & Reviews
Now in the
Eighth Edition, Concepts of Programming Languages introduces students to the main constructs of contemporary programming languages and provides the tools necessary to critically evaluate existing and future programming languages. By presenting design issues for various language constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing the design alternatives, this book gives readers a solid foundation for understanding the fundamental concepts of programming languages.
Preliminaries; Evolution of the Major Programming Languages; Describing Syntax and Semantics; Lexical and Syntax Analysis; Names, Binding, Type Checking, and Scopes; Data Types; Expressions and Assignment Statements; Statement-Level Control Structure; Subprograms; Implementing Subprograms; Abstract Data Types; Support for Object-Oriented Programming; Concurrency; Exception Handling and Event Handling; Functional Programming Languages; Logic Programming Languages.
For all readers interested in the main constructs of contemporary programming languages.
Synopsis
KEY BENEFIT: A thorough introduction to the main constructs of contemporary programming languages and the tools needed to critically evaluate existing and future programming languages. KEY TOPICS: Evolution of the Major Programming Languages; Describing Syntax and Semantics; Lexical and Syntax Analysis; Names, Bindings, Type Checking, and Scopes; Data Types; Expressions and Assignment Statements; Statement-Level Control Structures; Subprograms; Implementing Subprograms; Abstract Data Types and Encapsulation Constructs; Support for Object-Oriented Programming; Concurrency; Exception Handling and Event Handling; Functional Programming Languages; Logic Programming Languages MARKET: An ideal reference encapsulating the history and future of programming languages.
About the Author
Robert Sebesta is an Associate Professor in the Computer Science Department at the University of Colorado, Colorado Springs. Professor Sebesta received a BS in applied mathematics from the University of Colorado, Boulder, and MS and PhD degrees in computer science from the Pennsylvania State University. His professional interests are the design and evaluation of programming languages, compiler design, and software testing methods and tools. He is the author of Addison-Wesley’s Concepts of Programming Languages and Programming the World Wide Web.
Table of Contents
Chapter 1 Preliminaries 1
1.1 Reasons for Studying Concepts of Programming Languages ...............2
1.2 Programming Domains .....................................................................5
1.3 Language Evaluation Criteria ............................................................7
1.4 Influences on Language Design .......................................................19
1.5 Language Categories .......................................................................22
1.6 Language Design Trade-Offs ............................................................24
1.7 Implementation Methods ................................................................25
1.8 Programming Environments ............................................................32
Summary • Review Questions • Problem Set .............................................33
Chapter 2 Evolution of the Major Programming Languages 37
2.1 Zuse’s Plankalkül ...........................................................................38
2.2 Minimal Hardware Programming: Pseudocodes ...............................41
2.3 The IBM 704 and Fortran ..............................................................44
2.4 Functional Programming: LISP ......................................................49
2.5 The First Step Toward Sophistication: ALGOL 60 ............................54
2.6 Computerizing Business Records: COBOL ........................................60
2.7 The Beginnings of Timesharing: BASIC ............................................65
Interview: ALAN COOPER–User Design and Language Design..................68
2.8 Everything for Everybody: PL/I .......................................................70
2.9 Two Early Dynamic Languages: APL and SNOBOL .........................73
2.10 The Beginnings of Data Abstraction: SIMULA 67 ............................74
2.11 Orthogonal Design: ALGOL 68 ........................................................75
2.12 Some Early Descendants of the ALGOLs ......................................... 77
2.13 Programming Based on Logic: Prolog ............................................. 81
2.14 History’s Largest Design Effort: Ada .............................................. 83
2.15 Object-Oriented Programming: Smalltalk ........................................ 87
2.16 Combining Imperative and Object-Oriented Features: C++ ................ 90
2.17 An Imperative-Based Object-Oriented