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 20 1.5 Language Categories 23 1.6 Language Design Trade-offs 24 1.7 Implementation Methods 25 1.8 Programming Environments 33 Summary • Review Questions • Problem Set 34 Chapter 2 Evolution of the Major Programming Languages 39 2.1 Zuse’s Plankalkül 40 2.2 Minimal Hardware Programming: Pseudocodes 43 2.3 The IBM 704 and Fortran 45 2.4 Functional Programming: LISP 52 2.5 The First Step Toward Sophistication: ALGOL 60 57 2.6 Computerizing Business Records: COBOL 63 2.7 The Beginnings of Timesharing: BASIC 68 Interview: Alan Cooper—User Design and Language Design 72 2.8 Everything for Everybody: PL/I 74 2.9 Two Early Dynamic Languages: APL and SNOBOL 78 2.10 The Beginnings of Data Abstraction: SIMULA 67 79 2.11 Orthogonal Design: ALGOL 68 80 2.12 Some Early Descendants of the ALGOLs 82 2.13 Programming Based on Logic: Prolog 90 2.14 History’s Largest Design Effort: Ada 92 2.15 Object-Oriented Programming: Smalltalk 97 2.16 Combining Imperative and Object-Oriented Features: C++ 101 2.17 An Imperative-Based Object-Oriented Language: Java 104 2.18 Scripting Languages: JavaScript, PHP, and Python 108 2.19 A C-Based Language for the New Millennium: C# 112 2.20 Markup/Programming Hybrid Languages 115 Summary • Bibliographic Notes • Review Questions •Problem Set 117 Chapter 3 Describing Syntax and Semantics 123 3.1 Introduction 124 3.2 The General Problem of Describing Syntax 125 3.3 Formal Methods of Describing Syntax 127 3.4 Attribute Grammars 141 History Note 142 3.5 Describing the Meanings of Programs: Dynamic Semantics 148 History Note 164 Summary • Bibliographic Notes • Review Questions • Problem Set • Programming Exercises .......................................................................1
2021-09-15 20:10:42 59KB 答案 程序语言设计原理
1