search for books and compare prices
Tables of Contents for Programming Language Concepts Paradigms
Chapter/Section Title
Page #
Page Count
Preface
xi
 
Introduction
1
7
Programming linguistics
1
3
Concepts and paradigms
1
2
Syntax and semantics
3
1
Language processors
3
1
Historical background
4
2
Further reading
6
2
Exercises 1
7
1
Values
8
29
Values and types
8
1
Primitive types
9
2
Composite types
11
11
Cartesian products
11
3
Disjoint unions
14
3
Mappings
17
4
Powersets
21
1
Recursive types
22
3
Lists
22
1
Recursive types in general
23
2
Strings
25
1
Type systems
25
5
Static and dynamic typing
25
2
Type equivalence
27
2
The type completeness principle
29
1
Expressions
30
4
Literals
31
1
Aggregates
31
1
Function calls
32
1
Conditional expressions
33
1
Constant and variable accesses
34
1
Further reading
34
3
Exercises 2
35
2
Storage
37
29
Variables and updating
37
1
Composite variables
38
5
Total and selective updating
40
1
Array variables
41
2
Storables
43
1
Lifetime
43
9
Local and global variables
44
1
Heap variables
45
3
Persistent variables
48
2
Dangling references
50
2
Commands
52
9
Skips
53
1
Assignments
53
1
Procedure calls
54
1
Sequential commands
55
1
Collateral commands
55
1
Conditional commands
55
2
Iterative commands
57
4
Expressions with side effects
61
2
Command expressions
61
1
Expression-oriented languages
62
1
Further reading
63
3
Exercises 3
63
3
Bindings
66
21
Bindings and environments
66
2
Bindables
68
1
Scope
68
5
Block structure
68
2
Scope and visibility
70
1
Static and dynamic binding
71
2
Declarations
73
8
Definitions
73
2
Type declarations
75
1
Variable declarations
76
1
Collateral declarations
77
1
Sequential declarations
78
1
Recursive declarations
78
2
Scopes of declarations
80
1
Blocks
81
2
Block commands
81
1
Block expressions
82
1
The qualification principle
82
1
Further reading
83
4
Exercises 4
84
3
Abstraction
87
18
Kinds of abstraction
87
6
Function abstractions
88
2
Procedure abstractions
90
1
The abstraction principle
91
2
Parameters
93
7
Copy mechanisms
95
1
Definitional mechanisms
96
2
The correspondence principle
98
2
Evaluation order
100
2
Further reading
102
3
Exercises 5
102
3
Encapsulation
105
22
Packages
106
3
Simple packages
106
1
Information hiding
107
2
Abstract types
109
4
Objects and classes
113
5
Single objects
113
2
Object classes
115
3
Generics
118
6
Generic abstractions
118
1
Type parameters
119
5
Further reading
124
3
Exercises 6
125
2
Type Systems
127
22
Monomorphism
127
2
Overloading
129
2
Polymorphism
131
7
Polymorphic abstractions
132
2
Parameterized types
134
2
Polytypes
136
2
Type inference
138
2
Monomorphic type inference
138
1
Polymorphic type inference
139
1
Coercions
140
1
Subtypes and inheritance
141
5
Further reading
146
3
Exercises 7
147
2
Sequencers
149
12
Jumps
149
4
Escapes
153
2
Exceptions
155
3
Further reading
158
3
Exercises 8
159
2
Concurrency
161
27
William Findlay
Perspectives on concurrency
161
2
Programs and processes
163
1
Problems with concurrency
164
3
Nondeterminism
164
1
Speed dependence
165
1
Deadlock
165
2
Starvation
167
1
Process interactions
167
3
Independent processes
168
1
Competing processes
168
1
Communicating processes
169
1
Low-level concurrency primitives
170
9
Process creation and control
170
2
Interrupts
172
1
Spin locks
173
2
Events
175
1
Semaphores
176
2
Messages
178
1
Remote procedure calls
179
1
Structured concurrent programming
179
7
Conditional critical regions
180
1
Monitors
181
2
Rendezvous
183
3
Further reading
186
2
Exercises 9
186
2
The Imperative Programming Paradigm
188
17
Imperative programming
188
2
Case study: Pascal
190
5
Values and types
190
2
Expressions
192
1
Commands and sequencers
193
1
Declarations
193
1
Abstractions
194
1
Case study: Ada
195
8
Values, types, and subtypes
196
1
Expressions
197
1
Commands and sequencers
197
1
Declarations
197
1
Abstractions
197
2
Encapsulation
199
2
Separate compilation
201
1
Generics
201
2
Further reading
203
2
Exercises 10
204
1
The Concurrent Programming Paradigm
205
14
William Findlay
Ada tasking revisited
205
3
Deadlock again
208
3
The banker's algorithm
211
6
Further reading
217
2
Exercises 11
218
1
The Object-oriented Programming Paradigm
219
11
Object-oriented programming
219
3
Case study: Smalltalk
222
6
Objects and classes
223
1
Variables
224
1
Control
225
1
Class definitions
226
1
Inheritance
227
1
Further reading
228
2
Exercises 12
229
1
The Functional Programming Paradigm
230
23
John Hughes
David Watt
Functional programming
230
17
Pattern matching
233
1
Values and types
234
3
Higher-order functions
237
5
Lazy evaluation
242
3
Modeling state
245
2
Pragmatics
247
3
Transformation and proof
247
2
Efficiency
249
1
Concurrency
249
1
Further reading
250
3
Exercises 13
251
2
The Logic Programming Paradigm
253
13
Logic programming
253
3
Case study: Prolog
256
9
Values, variables, and terms
256
2
Clauses and relations
258
4
The closed-world assumption
262
1
Control
262
3
Further reading
265
1
Exercises 14
265
1
Conclusion
266
15
Language selection
266
6
Issues
266
3
Comparison
269
3
Language design
272
6
Selection of concepts
272
1
Regularity
273
1
Simplicity
274
2
Syntax
276
2
The programming language life cycle
278
1
Further reading
278
3
Exercises 15
279
2
Appendix: Answers to Selected Exercises
281
26
Answers 2
281
3
Answers 3
284
1
Answers 4
285
1
Answers 5
286
1
Answers 6
287
5
Answers 7
292
1
Answers 8
293
3
Answers 9
296
2
Answers 10
298
1
Answers 11
299
2
Answers 12
301
1
Answers 13
302
1
Answers 14
303
1
Answers 15
304
3
Bibliography
307
6
Index
313