SOLUTION MANUAL
Concepts of Programming Languages, 11th edition
by Robert W. Sebesta
U
LT
IM
AT
ES
TU
D
Y
1
,@PROFDOCDIGITALLIBRARIES
Contents
U
Chapter 1 Preliminaries 1
LT
1.1 Reasons for Studying Concepts of Programming Languages .................... 2
1.2 Programming Domains .............................................................................. 5
1.3 Language Evaluation Criteria .................................................................... 6
IM
1.4 Influences on Language Design ............................................................... 17
1.5 Language Categories ............................................................................... 20
AT
1.6 Language Design Trade-Offs................................................................... 21
1.7 Implementation Methods ......................................................................... 22
1.8 Programming Environments .................................................................... 29
ES
Summary • Review Questions • Problem Set....................................................... 30
Chapter 2 Evolution of the Major Programming Languages 33
2.1 Zuse’s Plankalkül .................................................................................... 36
TU
2.2 Pseudocodes ............................................................................................ 37
2.3 The IBM 704 and Fortran ........................................................................ 40
2.4 Functional Programming: Lisp ................................................................ 45
D
2.5 The First Step Toward Sophistication: ALGOL 60.................................. 50
2.6
Y
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
U
2.14 History’s Largest Design Effort: Ada ...................................................... 79
LT
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
IM
2.18 Scripting Languages ................................................................................ 91
2.19 The Flagship .NET Language: C# ........................................................... 98
2.20 Markup-Programming Hybrid Languages ............................................. 100
AT
Summary • Bibliographic Notes • Review Questions • Problem Set •Programming
Exercises ........................................................................................................... 102
Chapter 3 Describing Syntax and Semantics 109
ES
3.1 Introduction ........................................................................................... 110
3.2 The General Problem of Describing Syntax .......................................... 111
3.3
TU
Formal Methods of Describing Syntax .................................................. 113
3.4 Attribute Grammars ............................................................................... 128
History Note....................................................................................................................................... 128
3.5 Describing the Meanings of Programs: Dynamic Semantics ................. 134
D
History Note....................................................................................................................................... 142
Y
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
U
5.1 Introduction ........................................................................................... 198
LT
5.2 Names.................................................................................................... 199
History Note....................................................................................................................................... 199
5.3 Variables................................................................................................ 200
IM
5.4 The Concept of Binding......................................................................... 203
5.5 Scope ..................................................................................................... 211
AT
5.6 Scope and Lifetime ................................................................................ 222
5.7 Referencing Environments..................................................................... 223
5.8 Named Constants ................................................................................... 224
ES
Summary • Review Questions • Problem Set •Programming Exercises ............. 227
Chapter 6 Data Types 235
6.1 Introduction ........................................................................................... 236
TU
6.2 Primitive Data Types ............................................................................. 238
6.3 Character String Types .......................................................................... 242
History Note....................................................................................................................................... 243
D
6.4 Enumeration Types................................................................................ 247
6.5 Array Types ........................................................................................... 250
Y
History Note....................................................................................................................................... 251
History Note....................................................................................................................................... 251
6.6 Associative Arrays................................................................................. 261
Interview: ROBERTO IERUSALIMSCHY—Lua ........................................... 262
4