CDN$ 122.04
Usually ships within 1 to 2 months.
Ships from and sold by Gift-wrap available.
Types and Programming Lan... has been added to your Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 3 images

Types and Programming Languages Hardcover – Jan 4 2002

5.0 out of 5 stars 2 customer reviews

See all 4 formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
"Please retry"
CDN$ 122.04
CDN$ 79.53 CDN$ 100.29

Unlimited FREE Two-Day Shipping for Six Months When You Try Amazon Student
click to open popover

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

Product Details

  • Hardcover: 648 pages
  • Publisher: The MIT Press; 1 edition (Jan. 4 2002)
  • Language: English
  • ISBN-10: 0262162091
  • ISBN-13: 978-0262162098
  • Product Dimensions: 20.3 x 2.7 x 22.9 cm
  • Shipping Weight: 1.3 Kg
  • Average Customer Review: 5.0 out of 5 stars 2 customer reviews
  • Amazon Bestsellers Rank: #69,636 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

Product Description


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 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 University)

About the Author

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

Customer Reviews

5.0 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See both customer reviews
Share your thoughts with other customers

Top Customer Reviews

Format: Hardcover
This text is perhaps the most accessible yet thorough introduction to type systems I've encountered.
On the one hand, it offers excellent grounding: practical motivation is provided, numerous examples illustrate the concepts, and implementations are provided which can be used to typecheck and evaluate these examples. At various points, extended demonstrations of the type systems under consideration are given (e.g. showing how objects may be encoded). The exercises are well constructed and in many cases, accompanied with answers and detailed explanations in the appendix.
On the other hand, it offers an excellent exposition of the material: Pierce provides a lucid account of the static and dynamic semantics (primarily small-step operational) for various lambda calculi. He proceeds in a stepwise fashion via the gradual accretion of features: from first order (simply typed) systems to higher order systems incorporating bounded subtyping and recursion. He also gives attention to the metatheory of these systems (focusing on proofs of progress and preservation, and for systems with subtyping, of decideability). Internally, the text is well organized, with clear dependencies among the chapters, and the bibliography is extensive.
It should be noted that, while reasonably comprehensive, the text is necessarily limited in scope. For example, aside from the discussion on Featherweight Java, systems other than typed lambda calculus variants are not considered. In my opinion, the focus on these (in some sense "low-level") calculi makes foundational issues more apparent, and the linear progression from simple to complex variants lends a pleasant cohesiveness that would have been lost in a more general survey. However, as object/class encodings were discussed at various points, it would have been nice to see a more integrated presentation, in the spirit of the paper Comparing Object Encodings [BCP97].
2 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse
By A Customer on Sept. 25 2002
Format: Hardcover
Especially helpful for those who have practical experience but don't have strong theoretical background (like Lambda Calculus, Typing Theory ... etc.)
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again.
Report abuse

Most Helpful Customer Reviews on (beta) 4.6 out of 5 stars 18 reviews
28 of 29 people found the following review helpful
2.0 out of 5 stars Awesome book screwed up by terrible translation to electronic format June 14 2014
By P. Lepin - Published on
Format: Kindle Edition Verified Purchase
Pierce's book is a classic. Unfortunately, this particular version of it is outright horrible. It pretty much reproduces the format of an actual paper book, preserving the page layout, and sells it as a "feature"... What this means in practice is that it's barely readable on mobile devices, and the smaller the screen the worse it is. If you're vision impaired to boot, just forget about it. To add insult to the injury, you can't read it on Kindle Cloud Reader, for some inexplicable reason.

The book is absolutely great. But I regretted buying this particular version of it.
0 of 2 people found the following review helpful
5.0 out of 5 stars Five Stars March 13 2015
By Yu Lu - Published on
Format: Hardcover Verified Purchase
Clear and clean and the book is in great shape.
50 of 73 people found the following review helpful
4.0 out of 5 stars Not quite what I was looking for June 12 2005
By wiredweird - Published on
Format: Hardcover Verified Purchase
I need basic information on type safety, theory of object oriented typing, and how to axiomatize nonstandard kind of typing systems. I need it now, in a form that I can put to use without too many side trips

This book is almost what I was looking for. It builds up a semantic logic based on lambda calculus, then creates typed versions. Pierce really does work very methodically up through the levels, ending at about the place where C++ templates and recursive type definitions start. Along the way, he's careful to match the typing axioms to semantics, covering unusual topics like exceptions and type inference while he's at it.

Almost what I was looking for, but not quite. As I said, I have immediate needs, and I'm not into theory for its own sweet sake. That means I had little appreciation for all the chapters that created arithmetic all over again, starting from Peano axioms (or something like), via the lambda calculus. I know that low-level axiomatizations and lambda calculus are much beloved of the theoreticians, but I encounter them only rarely, and when I was trying to get something else done, like now. For me, they created a diversion blocked by an impediment. Also, however convenient it may be for theory, functional programming is mostly a journal-page peculiarity in industrial practice. I admit, analysis of functional programs pushed me into insight I might have missed, but I would probably have been quite happy dealing with assignment formalisms instead.

I almost gave this three stars, because its unnecessary notational baggage and off-main-stream topics weren't doing my job. Bruce's book (ISBN 026202523X) was a much more profitable use of my time. Still, Pierce's goals weren't mine, and the mansion of type analysis has many rooms. Not all of those rooms are furnished to my taste, and don't need to be. I rounded up to four stars for what it meant to do.

9 of 9 people found the following review helpful
2.0 out of 5 stars Awesome book but the Kindle version is unreadable Aug. 17 2014
By irene - Published on
Format: Kindle Edition Verified Purchase
Awesome book but the Kindle version is unreadable, one third of the screen is margin. Have fun zooming in and out. Also for some inexplicable reason this kindle book is not available to read on kindle for android on my phone!! (with the error message: "this item is not compatible with this device) I guess they figured since they wasted half the screen space with margins they might add as a minimum requirement a big tablet screen, otherwise refuse to display the book. Neither on the cloud reader.
28 of 28 people found the following review helpful
5.0 out of 5 stars Just right June 3 2007
By Jason Orendorff - Published on
Format: Hardcover
This is a textbook about programming language theory, somewhat mathematical-- but it's must-read material for anyone who wants to gripe about programming languages cluefully, much less design them.

For me, this book strikes exactly the right balance between theory and practicality. Chapters on the mathematical properties of various tiny programming languages are interleaved with chapters that provide annotated implementations of those languages.

The book will also give you the background (notation and terminology) you'll need to read cutting-edge research papers on programming language theory.

This book contains all the information I was missing. Excellent presentation of the material, well written, great exercises, doesn't go off into lala-land. Highly recommended. Some math background very helpful (you need to know what a mathematical proof is).