+612 9045 4394
 
CHECKOUT
Types and Programming Languages : The MIT Press - Benjamin C. Pierce

Types and Programming Languages

The MIT Press

Hardcover

Published: 5th February 2002
For Ages: 18+ years old
Ships: 15 business days
15 business days
RRP $168.00
$134.25
20%
OFF
or 4 easy payments of $33.56 with Learn more

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.

"Types are the leaven of computer programming; they make it digestible. This excellent book uses types to navigate the rich variety of programming languages, bringing a new kind of unity to their usage, theory, and implementation. Its author writes with the authority of experience in all three of these aspects." Robin Milner, Computer Laboratory, University of Cambridge "Written by an outstanding researcher, this book is well organized and very clear, spanning both theory and implementation techniques, and reflecting considerable experience in teaching and expertise in the subject."--John Reynolds, School of Computer Science, Carnegie Mellon University "Types are the leaven of computer programming; they make it digestible. This excellent book uses types to navigate the rich variety of programming languages, bringing a new kind of unity to their usage, theory, and implementation. Its author writes with the authority of experience in all three of these aspects."--Robin Milner, Computer Laboratory, University of Cambridge "Types and Programming Languages is carefully written with a well-balanced choice of topics. It focusses on pragmatics, with the right level of necessary theory. The exercises in this book range from easy to challenging and provide stimulating material for beginning and advanced readers, both programmers and the more theoretically minded."--Henk Barendregt, Faculty of Science, Mathematics, and Computer Science, University of Nijmegen, The Netherlands "Over the last two decades type theory has emerged as the central, unifying framework for research in programming languages. But these remarkable advances are not as well-known as they should be. The rapid advance of research on type systems for programming languages has far outpaced its dissemination to the rest of the field. No more. Pierce's book not only provides a comprehensive account of types for programming languages, but it does so in an engagingly elegant and concrete style that places equal emphasis on theoretical foundations and the practical problems of programming. This book will be the definitive reference for many years to come."--Robert Harper, Professor, Computer Science Department, Carnegie Mellon UniversityPlease note: Endorser gives permission to use the final two sentences of the quote as his endorsement, if necessary.

Prefacep. xiii
Introductionp. 1
Mathematical Preliminariesp. 15
Untyped Systems
Untyped Arithmetic Expressionsp. 23
An ML Implementation of Arithmetic Expressionsp. 45
The Untyped Lambda-Calculusp. 51
Nameless Representation of Termsp. 75
An ML Implementation of the Lambda-Calculusp. 83
Simple Types
Typed Arithmetic Expressionsp. 91
Simply Typed Lambda-Calculusp. 99
An ML Implementation of Simple Typesp. 113
Simple Extensionsp. 117
Normalizationp. 149
Referencesp. 153
Exceptionsp. 171
Subtyping
Subtypingp. 181
Metatheory of Subtypingp. 209
An ML Implementation of Subtypingp. 221
Case Study: Imperative Objectsp. 225
Case Study: Featherweight Javap. 247
Recursive Types
Recursive Typesp. 267
Metatheory of Recursive Typesp. 281
Polymorphism
Type Reconstructionp. 317
Universal Typesp. 339
Existential Typesp. 363
An ML Implementation of System Fp. 381
Bounded Quantificationp. 389
Case Study: Imperative Objects, Reduxp. 411
Metatheory of Bounded Quantificationp. 417
Higher-Order Systems
Type Operators and Kindingp. 439
Higher-Order Polymorphismp. 449
Higher-Order Subtypingp. 467
Case Study: Purely Functional Objectsp. 475
Appendices
Solutions to Selected Exercisesp. 493
Notational Conventionsp. 565
Referencesp. 567
Indexp. 605
Table of Contents provided by Publisher. All Rights Reserved.

ISBN: 9780262162098
ISBN-10: 0262162091
Series: The MIT Press
Audience: Tertiary; University or College
For Ages: 18+ years old
Format: Hardcover
Language: English
Number Of Pages: 648
Published: 5th February 2002
Publisher: MIT Press Ltd
Country of Publication: US
Dimensions (cm): 23.5 x 21.0  x 3.4
Weight (kg): 1.36