CONCEPTS OF PROGRAMMING LANGUANGES 12TH Edition By Robert W. Sebesta
1
,Contents
Chapter 1
jz j z j z Preliminaries 1
1.1 Reasons for Studying Concepts of Programming Languages2
jz jz jz jz jz jz
1.2 Programming Domains ................................................ 5
jz
1.3 Language Evaluation Criteria ........................................ 6
jz jz
1.4 Influences on Language Design .................................. 17
jz jz jz
1.5 Language Categories ................................................. 20
jz
1.6 Language Design Trade-Offs ....................................... 21
jz jz
1.7 Implementation Methods ........................................... 22
jz
1.8 Programming Environments ....................................... 29
jz
Summary • Review Questions • Problem Set .......................... 30
jz jz jz jz jz jz
Chapter 2
jz j z j z Evolution of the Major Programming Languages
jz jz jz jz jz 33
2.1 Zuse’s Plankalkül ...................................................... 36
jz
2.2 Pseudocodes ............................................................ 37
2.3 The IBM 704 and Fortran .......................................... 40
jz jz jz jz
2.4 Functional Programming: Lisp ..................................... 45
jz jz
2.5 The First Step Toward Sophistication: ALGOL 60 ........... 50
jz jz jz jz jz jz
2.6 Computerizing Business Records: COBOL ..................... 56
jz jz jz
2.7 The Beginnings of Timesharing: Basic .......................... 61
jz jz jz jz
Interview: ALAN COOPER— jz jz
User Design and Language Design .......................... 64
jz jz jz jz
2.8 Everything for Everybody: PL/I ................................... 66
jz jz jz
2
, 2.9 Two Early Dynamic Languages: APL and SNOBOL ...........69
jz jz jz jz jz jz
2.10 The Beginnings of Data Abstraction: SIMULA 67.............70
jz jz jz jz jz jz
2.11 Orthogonal Design: ALGOL 68 .....................................71
jz jz jz
2.12 Some Early Descendants of the ALGOLs ........................73
jz jz jz jz jz
2.13 Programming Based on Logic: Prolog ............................77
jz jz jz jz
2.14 History’s Largest Design Effort: Ada .............................79
jz jz jz jz
2.15 Object-Oriented Programming: Smalltalk ......................83 jz jz
2.16 Combining Imperative and Object-Oriented Features: C++
jz jz jz jz jz
...............................................................................85
2.17 An Imperative-Based Object-Oriented Language: Java .....88
jz jz jz jz
2.18 Scripting Languages ...................................................91
jz
2.19 The Flagship .NET Language: C# .................................98
jz jz jz jz
2.20 Markup-Programming Hybrid Languages ..................... 100 jz jz
Summary • Bibliographic Notes • Review Questions • Problem Se
jz jz jz jz jz jz jz jz jz
t •Programming Exercises
jz jz
..................................................................................... 10
2
Chapter 3
jz j z j z Describing Syntax and Semantics jz jz jz 109
3.1 Introduction ............................................................ 110
3.2 The General Problem of Describing Syntax .................. 111
jz jz jz jz jz
3.3 Formal Methods of Describing Syntax ......................... 113
jz jz jz jz
3.4 Attribute Grammars ................................................. 128
jz
History Note .......................................................... 128
jz
3.5 Describing the Meanings of Programs: Dynamic Semantics
jz jz jz jz jz jz
............................................................................. 134
History Note .......................................................... 142
jz
Summary • Bibliographic Notes • Review Questions • Problem Set
jz jz jz jz jz jz jz jz jz
..................................................................................... 155
Chapter 4
jz j z j z Lexical and Syntax Analysis
jz jz jz 161
3
, 4.1 Introduction ............................................................ 162
4.2 Lexical Analysis ....................................................... 163
jz
4.3 The Parsing Problem ............................................... 171
jz jz
4.4 Recursive-Descent Parsing ....................................... 175 jz
4.5 Bottom-Up Parsing .................................................. 183
jz
Summary • Review Questions • Problem Set • Programming Ex
jz jz jz j z jz j z j z jz jz
ercises ........................................................................... 191
Chapter 5
jz j z j z Names, Bindings, and Scopes
jz jz jz 197
5.1 Introduction ........................................................... 198
5.2 Names .................................................................. 199
History Note ......................................................... 199
jz
5.3 Variables ............................................................... 200
5.4 The Concept of Binding ............................................ 203
jz jz jz
5.5 Scope.................................................................... 211
5.6 Scope and Lifetime ................................................. 222
jz jz
5.7 Referencing Environments ........................................ 223
jz
5.8 Named Constants ................................................... 224
jz
Summary • Review Questions • Problem Set •Programming Exercises
jz jz jz jz jz jz jz jz
.................................................................................... 227
Chapter 6
jz j z j z Data Types
jz 235
6.1 Introduction ........................................................... 236
6.2 Primitive Data Types ............................................... 238
jz jz
6.3 Character String Types ............................................ 242
jz jz
History Note ......................................................... 243
jz
6.4 Enumeration Types.................................................. 247
jz
6.5 Array Types ............................................................ 250
jz
History Note ......................................................... 251
jz
History Note ......................................................... 251
jz
4