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

Programming Language Pragmatics Paperback – Apr 6 2009

See all 3 formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
"Please retry"
CDN$ 44.95 CDN$ 28.55

There is a newer edition of this item:

Programming Language Pragmatics
CDN$ 108.39
In Stock.

Up to 90% Off Textbooks Up to 90% Off Textbooks

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

  • Paperback: 944 pages
  • Publisher: Morgan Kaufmann; 3 edition (April 6 2009)
  • Language: English
  • ISBN-10: 0123745144
  • ISBN-13: 978-0123745149
  • Product Dimensions: 19.1 x 4.7 x 23.5 cm
  • Shipping Weight: 1.5 Kg
  • Average Customer Review: Be the first to review this item
  • Amazon Bestsellers Rank: #388,475 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?

  • See Complete Table of Contents

Product Description


"Michael Scott's book could have been entitled 'Why Programming Languages Work' ... Its comprehensive and integrated presentation of language design and implementation illustrates and explains admirably the many deep and profitable connections among these fields." ―Jim Larus, Microsoft Research

"This book is the best and most complete on this topic that I've seen."   ―Klaus Ostermann, Darmstadt University of Technology

From the Back Cover

Programming Language Pragmatics is the most comprehensive programming language book available today. Taking the perspective that language design and language implementation are tightly interconnected and that neither can be fully understood in isolation, this critically acclaimed and bestselling book has been thoroughly updated to cover the most recent developments in programming language design. With a new chapter on run-time program management and expanded coverage of concurrency, this new edition provides both students and professionals alike with a solid understanding of the most important issues driving software development today.


  • Covers the most recent developments in programming language design, including Java 6 and 7, C++0X, C# 3.0, F#, Fortran 2003 and 2008, Ada 2005, and Scheme R6RS.

  • Includes a new chapter on run-time program management, covering virtual machines, managed code, just-in-time and dynamic compilation, reflection, binary translation and rewriting, mobile code, sandboxing, and debugging and program analysis tools.

  • Updates the concurrency chapter to address the latest developments in computer architecture and parallel language design, with major new sections on multicore and supercomputer machines, nonblocking synchronization, event-driven programming, memory consistency models, and transactional memory, plus new or updated coverage of OpenMP, Erlang, the pthreads library, and the concurrency features of Java and C#.

  • Improves pedagogy throughout the book, with extensive changes to the introductory chapter and the coverage of scanning and parsing, modules and scoping, macros and in-lining, polymorphism, monads, iteration and enumeration, array management, and object and subroutine closures.

  • Provides additional resources on a companion CD, with advanced/optional content, hundreds of working examples, an active search facility, and live links to manuals, tutorials, compilers, and interpreters on the World Wide Web. CD content is also available on a "companion" site at elsevierdirect dot com / 9780123745149

See all Product Description

Customer Reviews

There are no customer reviews yet on Amazon.ca
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 4.1 out of 5 stars 28 reviews
18 of 18 people found the following review helpful
5.0 out of 5 stars If you buy the Kindle Edition, you can obtain the missing portions of the book online. Dec 10 2010
By tom - Published on Amazon.com
Format: Kindle Edition Verified Purchase
UPDATED 3/2011: I had originally posted the review below, complaining that the Kindle version of Programming Language Pragmatics was a rip-off, because (1) you didn't get the CD that accompanies the print version, and (2) that missing CD includes large portions of the book. In March 2011, the publisher posted a responsive comment providing a link to an on-line copy of the material on the CD. Currently, the url is [...] . Given that the missing parts of the book are now available even if one buys the Kindle version, my original complaints about the book are no longer valid. I've kept the original review below just for context, but please note that I now have only good things to say about the book, which is worth reading in its entirety.

ORIGINAL REVIEW from 12/2010 (NOW SUPERSEDED - see above): Michael L. Scott's Programming Language Pragmatics is an excellent book about programming languages, language design, and compilers. Unfortunately, the Kindle edition simply omits large portions of the book. It's a rip-off. If you want the complete book, stick with the print edition. Here's the problem. Starting with the second edition, and continuing with the third edition, parts of the print edition were moved to a companion CD - for example, parts of chapters 2, 3, and 4, and all of chapter 5, are on the companion CD that accompanies the print edition - in order to keep the print edition from being too thick. Unfortunately, in the Kindle edition, they have neither integrated the companion CD into the text, nor provided you with the CD (or its contents) - you simply don't get those portions of the book at all. This is a rip-off - you are paying just as much for the Kindle edition as you would for the print edition, but not getting the entire book. I was looking forward to reading this on my Kindle, having read prior editions in hardcopy, but once I realized that I didn't get the entire book, I had Amazon refund my money and ordered the print edition.
13 of 13 people found the following review helpful
5.0 out of 5 stars More comfortable to read than 'The dragon book' Aug. 23 2013
By Baggers - Published on Amazon.com
Format: Paperback
Whilst the dragon book has become pretty much the go-to book for learning about compilers and language implementation, I found this one be much nicer to read.
I find that some texts expect you to be able to instantly grasp a whole new collection of constructs and keep them all in your head as the author connects their importance together. This book (thankfully) takes a bit more time with the reader and so even though the author took more pages to introduce topics I found myself making progress faster with the material.

Another wonderful thing is the author's knowledge across programming languages is fantastic. Along with many of the techniques are discussions of the pros and cons, the languages that have used them and their effect, within a couple of pages you can see ada, prolog, common lisp & haskell.

I'm only a couple of hundred pages in so far but am loving this book.
If you are interested in language design and implementation this is the book you should go for.
42 of 50 people found the following review helpful
1.0 out of 5 stars Poor quality kindle version. Nov. 25 2011
By gracamac - Published on Amazon.com
Format: Kindle Edition Verified Purchase
This review is on the kindle version of the book, and the rating reflects the quality of that particular version. Despite that, the book content is great, and i would recommend getting the hard-copy.

The kindle version is very poorly created. My main issues with it are:
- The index contains no numbers. It is just a list of terms without definitions.
- The example titles (i.e. Example 1.1:....) do not line up with the actual examples. You have to scroll up and down to find them.
- On kindle for PC, the quick contents (available from the left menu) only shows the sections, not the contents. If you want to quickly go to another chapter in the book, you have to go go to the contents section at the start of the book. This is not an issue with kindle software as other books have managed to have better contents.
- Some text as not copied across properly, I see some broken words and formatting issues.
- You cannot copy and paste from this book if you are outside the US. This is a limitation placed on us by the publisher.
- This may be an issue with kindle for PC, or the indexing of the book, but the search feature does not allow for partial matches of words. i.e. a search for scope will not match scopes.
- This is an issue with kindle for PC, and is not factored in my judgement of the book, but I should warn buyers that kindle for PC has a character limit on search (3 characters minimum). This prevents you for searching for uses of operators in programming books.

I don't really have anything positive to say for the kindle version of this book. Because of the above issues I always fall back on a PDF version of an earlier edition of this book that i have. It is essentially a waste of money for me.
13 of 15 people found the following review helpful
5.0 out of 5 stars $250 Book for $40 New? July 19 2013
By Let's Compare Options Preptorial - Published on Amazon.com
Format: Paperback Verified Purchase
The authors and publishers here must not have heard that when you write one of the best texts on the market in a subject area, at nearly 1,000 pages, you're supposed to hose students and shoppers with the price! THANK YOU for CARING about our budgets!

As other reviewers have stated, this is NOT a beginner's book, as it assumes you know the basics of programming paradigms and structures. HOWEVER, if you know coding relatively well in at least one language, and understand the basics of compilers and machine-code interfaces, you CAN PROFIT GREATLY from this text with Wiki close at hand. For example, want to explore how name binding and scope differ between imperative and functional? This will give you the answers, but you'll need to re-study the concepts themselves to follow the logic, as the descriptions are both broad ranging and detailed.

We recommend this text to technical libraries along with two others: Engineering a Compiler, Second Edition and Programming Language Processors in Java: Compilers and Interpreters. Why? Because the ACADEMIC approach to this topic is almost always functional (read: Lisp, Scheme, Racket, Clojure, etc.) because those languages, although tough, make great IDE's/SDK's for creating an entire development environment, from machine language to compiler/interpreter, all virtual.

I'm into it and love Lisp, but if you then mention the word "practical" you and I both know that we're not going to be asked to solve a problem in Racket, even though we might model it there! And this text is WAY practical, favoring object orientation as well as concurrent/parallel problems because: that's where the problems ARE today! You can certainly model and solve them in Lisp, but we have to face reality-- companies and customers will want it in C, C++, C# Java, Python, etc. at a minimum.

But given that, this text also has extreme inductive value-- generalizing those language concepts to non specific principles you'll need from the 30,000 foot view in selecting mixed paradigms, stack vs. heap choices, data structure decisions, etc. NOT an easy read, but every page is packed with relevant insights, and is an eye opener about very recent research in numerous interface areas (memory, compiler, queueing, calls, binding strategies, etc.). Recommended at the normal publisher's usurious price of over $200, a MUST have with an author/publisher willing to price this fine a text within reach of those of us on a budget, or the parents of students on a budget. I sure wish other authors/publishers would take a lesson from this title. I kid you not, a similar but dated title from Springer is going for $251 used here on Amazon, and is good, but not nearly as good as this one!

CD NOTE: The publisher's review comments on the "companion CD" even for the third edition, which is incorrect. ALL CD materials for the new/paperback edition have been moved to the elsevierdirect dot com companion site (/ISBN 13). So DO NOT RETURN THIS BOOK BECAUSE YOU THINK THEY FORGOT THE CD! It still talks all about the "companion CD" in the intro and at the end, but you have to read the tiny box at the very bottom of the very last page (911) to see the message that the CD is no longer included! Just didn't want you to think you were ripped off.

Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
4 of 4 people found the following review helpful
5.0 out of 5 stars For the seasoned developer Dec 13 2011
By Amazon Customer - Published on Amazon.com
Format: Paperback Verified Purchase
I would highly recommend this book for the seasoned developer. The author has a dry sense of humor in writing (to this very dry topic), and much of the language is lost if the reader does not have a solid foundation in programming languages; which I did not.

When purchased, I started to read, and immediately thought my new career move should be abandoned. However, after purchasing books that are at the beginner level, I am thoroughly enjoying Scott's book, as with each reading, I 'get" more of what he is writing about.

Even beginners should buy this book. Put it in clear view on the bookshelf, and work towards it.