SOLUTION MANUAL
Concepts of Programming Languages, 11th edition
by Robert W. Sebesta
SO
LU
TI
O
N
S
1
,@PROFDOCDIGITALLIBRARIES
Contents
Chapter 1 Preliminaries 1
1.1 Reasons for Studying Concepts of Programming Languages .................... 2
SO
1.2 Programming Domains .............................................................................. 5
1.3 Language Evaluation Criteria .................................................................... 6
1.4 Influences on Language Design ............................................................... 17
1.5 Language Categories ............................................................................... 20
LU
1.6 Language Design Trade-Offs................................................................... 21
1.7 Implementation Methods ......................................................................... 22
1.8
TI
Programming Environments .................................................................... 29
Summary • Review Questions • Problem Set....................................................... 30
O
Chapter 2 Evolution of the Major Programming Languages 33
2.1 Zuse’s Plankalkül .................................................................................... 36
N
2.2 Pseudocodes ............................................................................................ 37
2.3 The IBM 704 and Fortran ........................................................................ 40
S
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
,@PROFDOCDIGITALLIBRARIES
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
SO
2.17 An Imperative-Based Object-Oriented Language: Java ........................... 88
2.18 Scripting Languages ................................................................................ 91
2.19 The Flagship .NET Language: C# ........................................................... 98
LU
2.20 Markup-Programming Hybrid Languages ............................................. 100
Summary • Bibliographic Notes • Review Questions • Problem Set •Programming
Exercises ........................................................................................................... 102
TI
Chapter 3 Describing Syntax and Semantics 109
3.1 Introduction ........................................................................................... 110
O
3.2 The General Problem of Describing Syntax .......................................... 111
3.3 Formal Methods of Describing Syntax .................................................. 113
N
3.4 Attribute Grammars ............................................................................... 128
S
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
, @PROFDOCDIGITALLIBRARIES
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
SO
History Note....................................................................................................................................... 199
5.3 Variables................................................................................................ 200
5.4 The Concept of Binding......................................................................... 203
5.5 Scope ..................................................................................................... 211
LU
5.6 Scope and Lifetime ................................................................................ 222
5.7 Referencing Environments..................................................................... 223
5.8 Named Constants ................................................................................... 224
TI
Summary • Review Questions • Problem Set •Programming Exercises ............. 227
O
Chapter 6 Data Types 235
6.1 Introduction ........................................................................................... 236
N
6.2 Primitive Data Types ............................................................................. 238
6.3 Character String Types .......................................................................... 242
S
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