Advanced Topics in Types and Programming Languages

by Pierce, Pierce

ISBN: 9780262332668 | Copyright 2004

Click here to preview

Tabs

The study of type systems for programming languages now touches many areas of computer science, from language design and implementation to software engineering, network security, databases, and analysis of concurrent and distributed systems. This book offers accessible introductions to key ideas in the field, with contributions by experts on each topic.


The topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference.


Advanced Topics in Types and Programming Languages builds on Benjamin Pierce's Types and Programming Languages (MIT Press, 2002); most of the chapters should be accessible to readers familiar with basic notations and techniques of operational semantics and type systems—the material covered in the first half of the earlier book.


Advanced Topics in Types and Programming Languages can be used in the classroom and as a resource for professionals. Most chapters include exercises, ranging in difficulty from quick comprehension checks to challenging extensions, many with solutions.

Expand/Collapse All
Contents (pg. v)
Preface (pg. ix)
I Precise Type Analyses (pg. 1)
1 Substructural Type Systems (pg. 3)
2 Dependent Types (pg. 45)
3 Effect Types and Region-Based Memory Management (pg. 87)
II Types for Low-Level Languages (pg. 137)
4 Typed Assembly Language (pg. 141)
5 Proof-Carrying Code (pg. 177)
III Types and Reasoning about Programs (pg. 221)
6 Logical Relations and a Case Study in Equivalence Checking (pg. 223)
7 Typed Operational Reasoning (pg. 245)
IV Types for Programming in the Large (pg. 291)
8 Design Considerations for ML-Style Module Systems (pg. 293)
9 Type Definitions (pg. 347)
V Type Inference (pg. 387)
10 The Essence of ML Type Inference (pg. 389)
A Solutions to Selected Exercises (pg. 491)
References (pg. 535)
Index (pg. 567)
Contents (pg. v)
Preface (pg. ix)
I Precise Type Analyses (pg. 1)
1 Substructural Type Systems (pg. 3)
2 Dependent Types (pg. 45)
3 Effect Types and Region-Based Memory Management (pg. 87)
II Types for Low-Level Languages (pg. 137)
4 Typed Assembly Language (pg. 141)
5 Proof-Carrying Code (pg. 177)
III Types and Reasoning about Programs (pg. 221)
6 Logical Relations and a Case Study in Equivalence Checking (pg. 223)
7 Typed Operational Reasoning (pg. 245)
IV Types for Programming in the Large (pg. 291)
8 Design Considerations for ML-Style Module Systems (pg. 293)
9 Type Definitions (pg. 347)
V Type Inference (pg. 387)
10 The Essence of ML Type Inference (pg. 389)
A Solutions to Selected Exercises (pg. 491)
References (pg. 535)
Index (pg. 567)
Contents (pg. v)
Preface (pg. ix)
I Precise Type Analyses (pg. 1)
1 Substructural Type Systems (pg. 3)
2 Dependent Types (pg. 45)
3 Effect Types and Region-Based Memory Management (pg. 87)
II Types for Low-Level Languages (pg. 137)
4 Typed Assembly Language (pg. 141)
5 Proof-Carrying Code (pg. 177)
III Types and Reasoning about Programs (pg. 221)
6 Logical Relations and a Case Study in Equivalence Checking (pg. 223)
7 Typed Operational Reasoning (pg. 245)
IV Types for Programming in the Large (pg. 291)
8 Design Considerations for ML-Style Module Systems (pg. 293)
9 Type Definitions (pg. 347)
V Type Inference (pg. 387)
10 The Essence of ML Type Inference (pg. 389)
A Solutions to Selected Exercises (pg. 491)
References (pg. 535)
Index (pg. 567)
Contents (pg. v)
Preface (pg. ix)
I Precise Type Analyses (pg. 1)
1 Substructural Type Systems (pg. 3)
2 Dependent Types (pg. 45)
3 Effect Types and Region-Based Memory Management (pg. 87)
II Types for Low-Level Languages (pg. 137)
4 Typed Assembly Language (pg. 141)
5 Proof-Carrying Code (pg. 177)
III Types and Reasoning about Programs (pg. 221)
6 Logical Relations and a Case Study in Equivalence Checking (pg. 223)
7 Typed Operational Reasoning (pg. 245)
IV Types for Programming in the Large (pg. 291)
8 Design Considerations for ML-Style Module Systems (pg. 293)
9 Type Definitions (pg. 347)
V Type Inference (pg. 387)
10 The Essence of ML Type Inference (pg. 389)
A Solutions to Selected Exercises (pg. 491)
References (pg. 535)
Index (pg. 567)

Benjamin C. Pierce

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



eTextbook
Go paperless today! Available online anytime, nothing to download or install.
Device Compatibility
Support