ST
Edition
UV
SOLUTION
IA
MANUAL
_A
Robert W. Sebesta
PP
RO
Comprehensive Solution Manual for
Instructors and Students
VE
© Robert W. Sebesta
D?
All rights reserved. Reproduction or distribution without permission is prohibited.
??
©STUDYSTREAM
, Contents
ST
UV
Chapter 1 Preliminaries 1
1.1 Reasons for Studying Concepts of Programming Languages....................2
IA
1.2 Programming Domains ..............................................................................5
1.3 Language Evaluation Criteria ....................................................................6
1.4 Influences on Language Design ...............................................................17
_A
1.5 Language Categories................................................................................20
1.6 Language Design Trade-Offs...................................................................21
PP
1.7 Implementation Methods .........................................................................22
1.8 Programming Environments ....................................................................29
Summary • Review Questions • Problem Set ......................................................30
RO
Chapter 2 Evolution of the Major Programming Languages 33
2.1 Zuse’s Plankalkül .....................................................................................36
2.2 Pseudocodes .............................................................................................37
VE
2.3 The IBM 704 and Fortran ........................................................................40
2.4 Functional Programming: Lisp ................................................................45
2.5 The First Step Toward Sophistication: ALGOL 60 .................................50
D?
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
9
, 2.9 Two Early Dynamic Languages: APL and SNOBOL .............................69
2.10 The Beginnings of Data Abstraction: SIMULA 67 .................................70
ST
2.11 Orthogonal Design: ALGOL 68 ..............................................................71
2.12 Some Early Descendants of the ALGOLs ...............................................73
2.13
UV
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
IA
2.17 An Imperative-Based Object-Oriented Language: Java ..........................88
2.18 Scripting Languages.................................................................................91
_A
2.19 The Flagship .NET Language: C# ...........................................................98
2.20 Markup-Programming Hybrid Languages .............................................100
Summary • Bibliographic Notes • Review Questions • Problem Set •Programming
PP
Exercises ............................................................................................................102
Chapter 3 Describing Syntax and Semantics 109
RO
3.1 Introduction ............................................................................................110
3.2 The General Problem of Describing Syntax ..........................................111
3.3 Formal Methods of Describing Syntax ..................................................113
3.4
VE
Attribute Grammars ...............................................................................128
History Note ................................................................................................128
3.5 Describing the Meanings of Programs: Dynamic Semantics.................134
D?
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
10
, 4.3 The Parsing Problem ..............................................................................171
4.4 Recursive-Descent Parsing ....................................................................175
ST
4.5 Bottom-Up Parsing ................................................................................183
Summary • Review Questions • Problem Set • Programming Exercises...........191
UV
Chapter 5 Names, Bindings, and Scopes 197
5.1 Introduction ............................................................................................198
5.2 Names.....................................................................................................199
IA
History Note ................................................................................................199
5.3 Variables ................................................................................................200
5.4 The Concept of Binding .........................................................................203
_A
5.5 Scope ......................................................................................................211
5.6 Scope and Lifetime ................................................................................222
PP
5.7 Referencing Environments.....................................................................223
5.8 Named Constants ...................................................................................224
Summary • Review Questions • Problem Set •Programming Exercises............227
RO
Chapter 6 Data Types 235
6.1 Introduction ............................................................................................236
6.2 Primitive Data Types .............................................................................238
VE
6.3 Character String Types...........................................................................242
History Note ................................................................................................243
6.4 Enumeration Types ................................................................................247
D?
6.5 Array Types............................................................................................250
History Note ................................................................................................251
History Note ................................................................................................251
??
6.6 Associative Arrays .................................................................................261
11