Skip to content
Register Sign in Wishlist

Practical Foundations for Programming Languages

2nd Edition


  • Date Published: April 2016
  • availability: Available
  • format: Hardback
  • isbn: 9781107150300

£ 55.99

Add to cart Add to wishlist

Other available formats:

Request inspection copy

Lecturers may request a copy of this title for inspection

Product filter button
About the Authors
  • This text develops a comprehensive theory of programming languages based on type systems and structural operational semantics. Language concepts are precisely defined by their static and dynamic semantics, presenting the essential tools both intuitively and rigorously while relying on only elementary mathematics. These tools are used to analyze and prove properties of languages and provide the framework for combining and comparing language features. The broad range of concepts includes fundamental data types such as sums and products, polymorphic and abstract types, dynamic typing, dynamic dispatch, subtyping and refinement types, symbols and dynamic classification, parallelism and cost semantics, and concurrency and distribution. The methods are directly applicable to language implementation, to the development of logics for reasoning about programs, and to the formal verification language properties such as type safety. This thoroughly revised second edition includes exercises at the end of nearly every chapter and a new chapter on type refinements.

    • Develops the fundamental tools of type systems and operational semantics
    • Covers a broad range of language concepts in a single unifying framework
    • Provides a body of enduring principles on which all future work on language design may be based
    Read more

    Reviews & endorsements

    Review of previous edition: 'Harper's book provides a comprehensive treatment of the foundations of computation. He touches on a surprising range of concepts that arise in language design: from simple types to polymorphism to dependent types to modules; from strict to lazy to parallel computation; and from proof techniques for reasoning about extensional behavior to practical, compositional cost models in the presence of garbage collection. More importantly, throughout the book he uses types and the principles of type theory to organize the material and help us discover the orthogonal, composable abstractions that arise naturally not only in the design of programming languages but also in logics and mathematics. This approach helps uncover the fundamental structure lurking inside programming languages of today, and provides a principled approach to the designs for tomorrow.' Greg Morrisett, Cornell University, New York

    Review of previous edition: 'Starting with a mathematically simple framework and organizing principles that give type systems a central role, Bob Harper's magnum opus reveals the theory of programming languages as a coherent scientific subject with both breadth and elegance. His enormous experience, pithy views, and great good taste are evident throughout a book that deserves to become a classic.' Andrew Pitts, University of Cambridge

    Review of previous edition: 'This book offers an excellent introduction to a wide range of programming language concepts. They are all uniformly and carefully explained, using techniques that are very useful in practice for both analysis and implementation of programming languages. The book is authored by one of the most prominent researchers in type theory for programming languages. The presentation is very effective and based on the author's years of experience teaching the material.' Lars Birkedal, IT University of Copenhagen

    See more reviews

    Customer reviews

    Not yet reviewed

    Be the first to review

    Review was not posted due to profanity


    , create a review

    (If you're not , sign out)

    Please enter the right captcha value
    Please enter a star rating.
    Your review must be a minimum of 12 words.

    How do you rate this item?


    Product details

    • Edition: 2nd Edition
    • Date Published: April 2016
    • format: Hardback
    • isbn: 9781107150300
    • length: 512 pages
    • dimensions: 264 x 178 x 32 mm
    • weight: 1.08kg
    • availability: Available
  • Table of Contents

    1. Judgment and rules
    2. Statics and dynamics
    3. Total functions
    4. Finite data types
    5. Types and propositions
    6. Infinite data types
    7. Variable types
    8. Partiality and recursive types
    9. Dynamic types
    10. Subtyping
    11. Dynamic dispatch
    12. Control flow
    13. Symbolic data
    14. Mutable state
    15. Parallelism
    16. Concurrency and distribution
    17. Modularity
    18. Equational reasoning
    19. Appendices.

  • Author

    Robert Harper, Carnegie Mellon University, Pennsylvania
    Robert Harper is a professor in the computer science department at Carnegie Mellon University, Pennsylvania. His main research interest is in the application of type theory to the design and implementation of programming languages and to the mechanization of their meta-theory. Harper is a recipient of the Allen Newell Medal for Research Excellence and the Herbert A. Simon Award for Teaching Excellence, and is an Association for Computing Machinery Fellow.

Sorry, this resource is locked

Please register or sign in to request access. If you are having problems accessing these resources please email

Register Sign in
Please note that this file is password protected. You will be asked to input your password on the next screen.

» Proceed

You are now leaving the Cambridge University Press website. Your eBook purchase and download will be completed by our partner Please see the permission section of the catalogue page for details of the print & copy limits on our eBooks.

Continue ×

Continue ×

Continue ×
warning icon

Turn stock notifications on?

You must be signed in to your Cambridge account to turn product stock notifications on or off.

Sign in Create a Cambridge account arrow icon

Find content that relates to you

Join us online

This site uses cookies to improve your experience. Read more Close

Are you sure you want to delete your account?

This cannot be undone.


Thank you for your feedback which will help us improve our service.

If you requested a response, we will make sure to get back to you shortly.

Please fill in the required fields in your feedback submission.