Concepts Of Programming Languages, Global Edition,
By Robert W. Sebesta
12th Edition
1
,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 .................................................................... 6
1.4 Influences On Language Design .............................................................. 17
1.5 Language Categories ............................................................................... 20
1.6 Language Design Trade-Offs................................................................... 21
1.7 Implementation Methods ......................................................................... 22
1.8 Programming Environments .................................................................... 29
Summary • Review Questions • Problem Set....................................................... 30
Chapter 2 Evolution Of The Major Programming Languages 33
2.1 Zuse’s Plankalkül .................................................................................... 36
2.2 Pseudocodes ............................................................................................ 37
2.3 The Ibm 704 And Fortran ........................................................................ 40
2.4 Functional Programming: Lisp ................................................................ 45
2.5 The First Step Toward Sophistication: Algol 60 ...................................... 50
2.6 Computerizing Business Records: Cobol ................................................. 56
2.7 The Beginnings Of Timesharing: Basic ................................................... 61
Interview: Alan Cooper—User Design And Language Design........................ 64
2.8 Everything For Everybody: Pl/I ............................................................... 66
2
, 2.9 Two Early Dynamic Languages: Apl And Snobol ................................... 69
2.10 The Beginnings Of Data Abstraction: Simula 67 ..................................... 70
2.11 Orthogonal Design: Algol 68 ................................................................... 71
2.12 Some Early Descendants Of The Algols .................................................. 73
2.13 Programming Based On Logic: Prolog .................................................... 77
2.14 History’s Largest Design Effort: Ada ...................................................... 79
2.15 Object-Oriented Programming: Smalltalk ............................................... 83
2.16 Combining Imperative And Object-Oriented Features: C++ ................. 85
2.17 An Imperative-Based Object-Oriented Language: Java ........................... 88
2.18 Scripting Languages ................................................................................ 91
2.19 The Flagship .Net Language: C# ............................................................. 98
2.20 Markup-Programming Hybrid Languages ............................................. 100
Summary • Bibliographic Notes • Review Questions • Problem Set •Programming
Exercises ........................................................................................................... 102
Chapter 3 Describing Syntax And Semantics 109
3.1 Introduction ........................................................................................... 110
3.2 The General Problem Of Describing Syntax.......................................... 111
3.3 Formal Methods Of Describing Syntax ................................................. 113
3.4 Attribute Grammars ............................................................................... 128
History Note....................................................................................................................................... 128
3.5 Describing The Meanings Of Programs: Dynamic Semantics ............... 134
History Note....................................................................................................................................... 142
Summary • Bibliographic Notes • Review Questions • Problem Set.................. 155
Chapter 4 Lexical And Syntax Analysis 161
4.1 Introduction ........................................................................................... 162
4.2 Lexical Analysis .................................................................................... 163
3
, 4.3 The Parsing Problem ............................................................................. 171
4.4 Recursive-Descent Parsing .................................................................... 175
4.5 Bottom-Up Parsing ................................................................................ 183
Summary • Review Questions • Problem Set • Programming Exercises ............ 191
Chapter 5 Names, Bindings, And Scopes 197
5.1 Introduction ........................................................................................... 198
5.2 Names.................................................................................................... 199
History Note....................................................................................................................................... 199
5.3 Variables................................................................................................ 200
5.4 The Concept Of Binding ........................................................................ 203
5.5 Scope ..................................................................................................... 211
5.6 Scope And Lifetime ............................................................................... 222
5.7 Referencing Environments..................................................................... 223
5.8 Named Constants ................................................................................... 224
Summary • Review Questions • Problem Set •Programming Exercises ............. 227
Chapter 6 Data Types 235
6.1 Introduction ........................................................................................... 236
6.2 Primitive Data Types ............................................................................. 238
6.3 Character String Types .......................................................................... 242
History Note....................................................................................................................................... 243
6.4 Enumeration Types ................................................................................ 247
6.5 Array Types ........................................................................................... 250
History Note....................................................................................................................................... 251
History Note....................................................................................................................................... 251
6.6 Associative Arrays................................................................................. 261
Interview: Roberto Ierusalimschy—Lua ........................................................... 262
4