SOLUTION MANUAL
Concepts of Programming Languages, 12th edition
(GLOBAL EDITION) by Robert W. Sebesta
JN
U
R
SE
1
,@PROFDOCDIGITALLIBRARIES
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
JN
1.4 Influences on Language Design ............................................................... 17
1.5 Language Categories ............................................................................... 20
1.6 Language Design Trade-Offs ................................................................... 21
U
1.7 Implementation Methods ......................................................................... 22
1.8 Programming Environments .................................................................... 29
R
Summary • Review Questions • Problem Set ....................................................... 30
SE
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
,@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
2.17 An Imperative-Based Object-Oriented Language: Java ............................ 88
2.18 Scripting Languages ................................................................................ 91
JN
2.19 The Flagship .NET Language: C# ............................................................ 98
2.20 Markup-Programming Hybrid Languages .............................................. 100
Summary • Bibliographic Notes • Review Questions • Problem Set •Programming
U
Exercises ........................................................................................................... 102
R
Chapter 3 Describing Syntax and Semantics 109
3.1 Introduction ........................................................................................... 110
SE
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
, @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
History Note ....................................................................................................................................... 199
5.3 Variables................................................................................................ 200
JN
5.4 The Concept of Binding ......................................................................... 203
5.5 Scope ..................................................................................................... 211
5.6 Scope and Lifetime ................................................................................ 222
U
5.7 Referencing Environments ..................................................................... 223
5.8 Named Constants ................................................................................... 224
R
Summary • Review Questions • Problem Set •Programming Exercises ............. 227
SE
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