Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required. Learn more
Read instantly on your browser with Kindle Cloud Reader.
Using your mobile phone camera - scan the code below and download the Kindle app.
Programming Language Pragmatics Paperback – January 1, 1999
| Price | New from | Used from |
There is a newer edition of this item:
Enhance your purchase
- Print length700 pages
- LanguageEnglish
- PublisherMorgan Kaufmann
- Publication dateJanuary 1, 1999
- Dimensions7.48 x 1.57 x 9.25 inches
- ISBN-109781558605787
- ISBN-13978-1558605787
The Amazon Book Review
Book recommendations, author interviews, editors' picks, and more. Read it now
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Product details
- ASIN : 1558605789
- Publisher : Morgan Kaufmann; 2000th edition (January 1, 1999)
- Language : English
- Paperback : 700 pages
- ISBN-10 : 9781558605787
- ISBN-13 : 978-1558605787
- Item Weight : 3.13 pounds
- Dimensions : 7.48 x 1.57 x 9.25 inches
- Customer Reviews:
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews right now. Please try again later.
Many people find compiler and language theory to be dark magic, and it would be wrong not to acknowledge that these subjects are considerably harder than say creating a web page in PHP or writing a small Java/C# program. But much of the confusion also stems from the long history of porly written books which all have lacked explaining key areas or assumed that the readers just know some obscure CS topics beforehand. This book does not travel down that road, it is well written, contains both simple and advanced examples and is simply a delightful read.
This book is 800+ pages of theory behind language design and processing of languages.
Altought it is very theoretical, it's very easy to read and well written and a pleasure to read. There are a lot of examples/figures/tables etc to explain things. I recommend people which are totally new to language design/compiler design to first read an introduction text. I can really recommend 'programming language processors in java' from Watt and Brown. This is a really good book.
The title of the book suggest that this book will only cover Language Design. In reality chapter 2, 3,4 and 5 covers in depth resp. Syntax checking (parsing), Names/Scope/Binding, Semantic Analysis and processor architecture.
Beside in depth analysis of language design (e.g. OO-, functional-, imperative- and logical-languages) it gives some practical implementation advice/tips. E.g. there are only a few compilerbooks which seriously talks about the different parsing error recovery techniques. This book explain some different recovery methods. Probably error recovery is not scientific enough for the other books, but for a compiler user error recovery is really important.
A last tip: this book comes in 2 editions: a paperback and hardcover edition. If you want to save some money buy the paperback.
As the author has stated, to learn all the subjects the book is covering, one will have to spend years (taking different courses in computer science). This book has include all the material to give an overall view of the big picture and the students are suppose to learn the material in 2 semesters.
I personally tend to think that the book is better suited for the experienced programmer for the reviewing purposes. Students that never have real world experience probably will feel the book to be very dry.
Programming Language Pragmatics is one huge exception. None of the books I have read come close to the clarity that this book exhibits. On many occassions, the choice of words and presentation in this book has made me go 'Wow, I thought I already knew this stuff...'
Besides core topics, it has interesting discussion like concurrency, data-abstraction (object-oriented) and non-imperative programming models (functional and logic).
TOC (with my comments)
Ch. 1 Introduction
Ch. 2 Programming Language Syntax (theory of Regular Expression, Context-Free Grammars, Automata etc)
Ch. 3 Names, Scopes, and Bindings (binding, scope rules, closures etc)
Ch. 4 Semantic Analysis (attribute grammars, attribute flow, syntax tree etc)
Ch. 5 Assembly-Level Computer Architecture (keeping the pipeline full, register allocation etc)
Ch. 6 Control Flow
(expression evaluation, iteration, recursion, nondeterminacy etc)
Ch. 7 Data Types (type checking, pointers and recursive types etc)
Ch. 8 Subroutines and Control Abstraction (stack layout, calling sequences, parameter passing etc)
Ch. 9 Building a Runnable Program (back-end compiler structure, intermediate forms etc)
Ch. 10 Data Abstraction and Object Orientation (encapsulation, inheritance, dynamic method binding, multiple inheritance, the object model of smalltalk)
Ch. 11 Nonimperative Programming Models: Functional and Logic Languages
Ch. 12 Concurrency (shared memory, message passing etc)
Ch. 13 Code Improvement (peephole, redundancy elimination, data flow analysis, loop improvement, instruction scheduling, register allocation etc)
App. A Programming Languages Mentioned
App. B Language Design and Language Implementation
This is a very impressive book; truly one of my best investments in books so far.
The exercises given at the end of chapters are excellent and will reinforce your understanding. At a time when programming languages are proliferating at an amazing rate, it is essential you know how to compare the various aspects of different languages and choose the one most suitable for your work. Studying this will help you in that endeavour.
Get this book, but better read it.
Top reviews from other countries
As a systems programmer for distributed systems feeling at home in both worlds, Microsoft and Unix, I found this book indispensable. It's worth every penny.

