Concepts of Programming Languages, Third Edition by: Robert W. Sebesta ISBN: 0-8053-7133-8 Table of Contents CHAPTER 1: Preliminaries 1. Reasons for Studying Concepts of Programming Languages 2. Programming Domains 3. Language Evaluation Criteria 4. Influences on Language Design 5. Language Design Trade-offs 6. Implementation Methods 7. Programming Environments CHAPTER 2 : Evolution of the Major Programming Languages 1. Zuse's Plankalkül 2. Minimal Hardware Programming: Pseudocodes 3. The IBM and FORTRAN 4. Functional Programming: LISP 5. The First Step Toward Sophistication: ALGOL 6. Computerizing Business Records: COBOL 7. The Beginnings of Timesharing: BASIC 8. Everything for Everybody: PL/I 9. Two Early Dynamic Languages: APL and SNOBOL 10. The Beginnings of Data Abstraction: SIMULA 11. Orthogonal Design: ALGOL 12. Some Important Descendants of the ALGOLs 13. Programming Based on Logic: Prolog 14. History's Largest Design Effort: Ada 15. Object-Oriented Programming: Smalltalk 16. Combining Imperative and Object-Oriented Features: C++ Summary Bibliographic Notes Review Questions Problem Set CHAPTER 3: Describing Syntax and Semantics 1. Introduction 2. The General Problem of Describing Syntax 3. Formal Methods of Describing Syntax 4. Recursive Descent Parsing 5. Attribute Grammars 6. Describing the Meaning of Programs: Dynamic Semantics Summary Bibliographic Notes Review Questions Problem Set CHAPTER 4: Names, Bindings, Type Checking, and Scopes 1. Introduction 2. Names 3. Variables 4. The Concept of Binding 5. Type Checking 6. Strong Typing 7. Type Compatibility 8. Scope 9. Scope and Lifetime 10. Referencing Environments 11. Named Constants 12. Variable Initialization Summary Review Questions Problem Set CHAPTER 5: Data Types 1. Introduction 2. Primitive Data Types 3. Character String Types 4. User-Defined Ordinal Types 5. Array Types 6. Record Types 7. Union Types 8. Set Types 9. Pointer Types Summary Bibliographic Notes Review Questions Problem Set CHAPTER 6: Expressions and the Assignment Statement 1. Introduction 2. Arithmetic Expressions 3. Overloaded Operators 4. Type Conversions 5. Relational and Boolean Expressions 6. Short-Circuit Evaluation 7. Assignment Statements 8. Mixed-Mode Assignment Summary Review Questions Problem Set CHAPTER 7: Statement-Level Control Structures 1. Introduction 2. Compound Statements 3. Selection Statements 4. Iterative Statements 5. Unconditional Branching 6. Guarded Commands 7. Conclusions Summary Review Questions Problem Set CHAPTER 8: Subprograms 1. Introduction 2. Fundamentals of Subprograms 3. Design Issues for Subprograms 4. Local Referencing Environment 5. Parameter-Passing Methods 6. Parameters That Are Subprogram Names 7. Overloaded Subprograms 8. Generic Subprograms 9. Separate and Independent Compilation 10. Design Issues for Functions 11. Accessing Nonlocal Environments 12. User-Defined Overloaded Operators Summary Review Questions Problem Set CHAPTER 9: Implementing Subprograms 1. The General Semantics of Calls and Returns 2. Implementing FORTRAN Subprograms 3. Implementing Subprograms in ALGOL-like Languages 4. Blocks 5. Implementing Dynamic Scoping 6. Implementing Parameters That Are Subprogram Names Summary Bibliographic Notes Problem Set CHAPTER 10: Abstract Data Types 1. The Concept of Abstraction 2. Encapsulation 3. Introduction to Data Abstraction 4. Design Issues 5. Language Examples 6. Parameterized Abstract Data Types Summary Review Questions Problem Set CHAPTER 11: Concurrency 1. Introduction 2. Subprogram-Level Concurrency 3. Statement-Level Concurrency Summary Bibliographic Notes Review Questions Problem Set CHAPTER 12: Exception Handling 1. Introduction to Exception Handling 2. Exception Handling in PL/I 3. Exception Handling in Ada 4. Exception Handling in C++ Summary Bibliographic Notes Review Questions Problem Set Chapter 13: Functional Programming Languages 1. Introduction 2. Mathematical Functions 3. Fundamentals of Functional Programming Languages 4. The First Functional Programming Language: LISP 5. An Introduction to Scheme 6. COMMON LISP 7. ML 8. Miranda 9. Applications of Functional Languages 10. A Comparison of Functional and Imperative Languages Summary Bibliographic Notes Review Questions Problem Set CHAPTER 14: Logic Programming Languages 1. Introduction 2. A Brief Introduction to Predicate Calculus 3. Predicate Calculus and Proving Theorems 4. An Overview of Logic Programming 5. The Origins of Prolog 6. The Basic Elements of Prolog 7. Deficiencies of Prolog 8. Applications of Logic Programming 9. Conclusions Summary Bibliographic Notes Review Questions Problem Set CHAPTER 15: Object-Oriented Programming Languages 1. Introduction 2. Object-Oriented Programming 3. Fundamental Concepts of Smalltalk 4. The Smalltalk Language 5. Support for Object-Oriented Programming in C++ 6. Support for Object-Oriented Programming in Ada Summary Review Questions Problem Set