Types and Programming Languages

Front Cover
MIT Press, Jan 4, 2002 - Computers - 648 pages
A comprehensive introduction to type systems and programming languages.

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems—and of programming languages from a type-theoretic perspective—has important applications in software engineering, language design, high-performance compilers, and security.

This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.

The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

 

Contents

II
1
III
4
IV
9
V
10
VI
12
VII
15
VIII
16
IX
18
CV
249
CVI
251
CVII
254
CVIII
261
CIX
262
CX
263
CXI
265
CXII
267

X
19
XI
20
XII
21
XIII
23
XIV
26
XV
29
XVI
32
XVII
34
XVIII
43
XIX
45
XX
46
XXI
47
XXII
49
XXIII
51
XXIV
52
XXV
58
XXVI
68
XXVII
73
XXVIII
75
XXIX
76
XXX
78
XXXI
80
XXXII
83
XXXIII
85
XXXIV
87
XXXV
88
XXXVI
89
XXXVII
91
XXXVIII
92
XXXIX
95
XL
99
XLI
100
XLII
104
XLIII
108
XLIV
109
XLV
111
XLVII
113
XLVIII
115
L
117
LI
118
LII
119
LIII
121
LIV
124
LV
126
LVI
128
LVII
129
LVIII
132
LIX
136
LX
142
LXI
146
LXII
149
LXIII
152
LXIV
153
LXV
159
LXVII
162
LXVIII
165
LXIX
170
LXX
171
LXXI
172
LXXII
173
LXXIII
175
LXXIV
179
LXXV
181
LXXVI
182
LXXVII
188
LXXVIII
191
LXXIX
193
LXXX
200
LXXXI
206
LXXXII
207
LXXXIII
209
LXXXIV
210
LXXXV
213
LXXXVI
218
LXXXVII
220
LXXXVIII
221
LXXXIX
222
XC
225
XCI
228
XCII
229
XCIV
230
XCV
231
XCVI
233
XCVII
234
XCIX
235
C
237
CI
241
CII
244
CIII
245
CIV
247
CXIII
268
CXIV
275
CXV
279
CXVII
281
CXVIII
282
CXIX
284
CXX
286
CXXI
288
CXXII
290
CXXIII
295
CXXIV
298
CXXV
299
CXXVI
304
CXXVII
309
CXXVIII
311
CXXIX
312
CXXX
315
CXXXI
317
CXXXII
319
CXXXIII
321
CXXXIV
326
CXXXV
329
CXXXVI
330
CXXXVII
331
CXXXVIII
336
CXXXIX
339
CXL
340
CXLI
341
CXLII
344
CXLIII
353
CXLIV
354
CXLV
357
CXLVI
358
CXLVII
359
CXLVIII
360
CXLIX
361
CL
363
CLI
368
CLII
377
CLIII
379
CLIV
381
CLV
382
CLVI
383
CLVII
385
CLVIII
386
CLIX
389
CLX
391
CLXI
396
CLXII
400
CLXIII
406
CLXIV
408
CLXV
411
CLXVI
417
CLXVII
418
CLXVIII
421
CLXIX
424
CLXX
427
CLXXI
432
CLXXII
435
CLXXIII
436
CLXXIV
437
CLXXV
439
CLXXVI
440
CLXXVII
445
CLXXVIII
449
CLXXIX
450
CLXXX
453
CLXXXI
461
CLXXXII
462
CLXXXIII
467
CLXXXIV
469
CLXXXV
472
CLXXXVII
475
CLXXXVIII
476
CLXXXIX
477
CXC
479
CXCI
480
CXCII
481
CXCIII
482
CXCIV
485
CXCV
486
CXCVI
488
CXCVII
491
CXCVIII
493
CC
565
CCI
566
CCII
567
CCIII
605
Copyright

Other editions - View all

Common terms and phrases

About the author (2002)

Benjamin C. Pierce is Professor of Computer and Information Science at the University of Pennsylvania.

Bibliographic information