Programming Language Pragmatics Paperback – Apr 6 2009
|New from||Used from|
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your mobile phone number.
"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.
THIRD EDITION FEATURES
- 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
Most Helpful Customer Reviews on Amazon.com (beta)
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.
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.
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.
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.
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.
Look for similar items by category
- Books > Computers & Technology > Computer Science > Software Engineering
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Web Development > Web Design
- Books > Professional & Technical > Professional Science > Mathematics > Applied
- Books > Science & Math > Mathematics > Applied
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering
- Books > Textbooks > Sciences > Mathematics