Types and Programming Languages / Edition 1

Types and Programming Languages / Edition 1

by Benjamin C. Pierce
     
 

ISBN-10: 0262162091

ISBN-13: 9780262162098

Pub. Date: 02/01/2002

Publisher: MIT Press

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

…  See more details below

Overview

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.

The MIT Press

Read More

Product Details

ISBN-13:
9780262162098
Publisher:
MIT Press
Publication date:
02/01/2002
Edition description:
New Edition
Pages:
648
Sales rank:
1,393,126
Product dimensions:
8.00(w) x 9.00(h) x 1.06(d)
Age Range:
18 Years

Table of Contents

Preface
1Introduction1
2Mathematical Preliminaries15
IUntyped Systems21
3Untyped Arithmetic Expressions23
4An ML Implementation of Arithmetic Expressions45
5The Untyped Lambda-Calculus51
6Nameless Representation of Terms75
7An ML Implementation of the Lambda-Calculus83
IISimple Types89
8Typed Arithmetic Expressions91
9Simply Typed Lambda-Calculus99
10An ML Implementation of Simple Types113
11Simple Extensions117
12Normalization149
13References153
14Exceptions171
IIISubtyping179
15Subtyping181
16Metatheory of Subtyping209
17An ML Implementation of Subtyping221
18Case Study: Imperative Objects225
19Case Study: Featherweight Java247
IVRecursive Types265
20Recursive Types267
21Metatheory of Recursive Types281
VPolymorphism315
22Type Reconstruction317
23Universal Types339
24Existential Types363
25An ML Implementation of System F381
26Bounded Quantification389
27Case Study: Imperative Objects, Redux411
28Metatheory of Bounded Quantification417
VIHigher-Order Systems437
29Type Operators and Kinding439
30Higher-Order Polymorphism449
31Higher-Order Subtyping467
32Case Study: Purely Functional Objects475
Appendices491
A: Solutions to Selected Exercises493
B: Notational Conventions565
References567
Index605

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >