12th Global Edition By Sebesta, Chapter 1-16
SOLUTION
MANUAL
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
4.3 The Parsing Problem......................................................... 171
4.4 Recursive-Descent Parsing ................................................ 175
3
, 4.5 Bottom-Up Parsing ........................................................... 183
Summary • Review Questions • Problem Set • Programming Exercises191
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 Exercises227
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
6.7 Record Types ................................................................... 265
6.8 Tuple Types ..................................................................... 268
6.9 List Types ........................................................................ 270
6.10 Union Types ..................................................................... 272
4