Synopses & Reviews
Includes bibliographical references (p. 665-676) and index.
NEW! Expands the treatment of parsing from one section to one chapter (Ch. 3).
NEW! Includes additional treatment of scripting languages.
NEW! Offers updated coverage of Java 1.3 throughout.
NEW! Added information on scripting languages.
Table of Contents
Reasons for Studying Concepts of Programming Languages.
Language Evaluation Criteria.
Influences on Language Design.
Language Design Trade-Offs.
2. Evolution of the Major Programming Languages.
Minimal Hardware Programming: Pseudocodes.
The IBM 704 and FORTRAN.
Functional Programming: LISP.
The First Step Toward Sophistication: ALGOL 60.
Computerizing Business Records: COBOL.
The Beginnings of Timesharing: BASIC.
Everything for Everybody: PL/I.
Two Early Dynamic Languages: APL and SNOBOL.
The Beginnings of Data Abstraction: SIMULA 67.
Orthogonal Design: ALGOL 68.
Some Important Descendants of the ALGOLs.
Programming Based on Logic: Prolog.
History's Largest Design Effort: Ada.
Object-Oriented Programming: Smalltalk.
Combining Imperative and Object-Oriented Features: C++.
Programming the World Wide Web: Java.
3. Describing Syntax and Semantics.
The General Problem of Describing Syntax.
Formal Methods of Describing Syntax.
Describing the Meanings of Programs: Dynamic Semantics.
4. Lexical and Syntax Analysis.
The Parsing Problem.
5. Names, Bindings, Type Checking, and Scopes.
The Concept of Binding.
Scope and Lifetime.
6. Data Types.
Primitive Data Types.
Character String Types.
User-Defined Ordinal Types.
7. Expressions and Assignment Statements.
Relational and Boolean Expressions.
8. Statement-Level Control Structures.
Fundamentals of Subprograms.
Design Issues for Subprograms.
Local Referencing Environments.
Parameters That Are Subprogram Names.
Separate and Independent Compilation.
Design Issues for Functions.
Accessing Nonlocal Environments.
User-Defined Overloaded Operators.
10. Implementing Subprograms.
The General Semantics of Calls and Returns.
Implementing FORTRAN 77 Subprograms.
Implementing Subprograms in ALGOL-Like Languages.
Implementing Dynamic Scoping.
Implementing Parameters That Are Subprogram Names.
11. Abstract Data Types.
The Concept of Abstraction.
Introduction to Data Abstraction.
Parameterized Abstract Data Types.
12. Support for Object-Oriented Programming.
Design Issues for Object-Oriented Languages.
Overview of Smalltalk.
Introduction to the Smalltalk Language.
Smalltalk Example Programs.
Large-Scale Features of Smalltalk.
Evaluation of Smalltalk.
Support for Object-Oriented Programming in C++.
Support for Object-Oriented Programming in Java.
Support for Object-Oriented Programming in Ada 95.
Support for Object-Oriented Programming in Eiffel.
Implementation of Object-Oriented Constructs.
Introduction to Subprogram-Level Concurrency.
Concurrency in Ada 95.
14. Exception Handling.
Introduction to Exception Handling.
Exception Handling in PL/I.
Exception Handling in Ada.
Exception Handling in C++.
Exception Handling in Java.
15. Functional Programming Languages.
Fundamentals of Functional Programming Languages.
The First Functional Programming Language: LISP.
An Introduction to Scheme.
Applications of Functional Languages.
A Comparison of Functional and Imperative Languages.
16. Logic Programming Languages.
A Brief Introduction to Predicate Calculus.
Predicate Calculus and Proving Theorems.
An Overview of Logic Programming.
The Origins of Prolog.
The Basic Elements of Prolog.
Deficiencies of Prolog.
Applications of Logic Programming.