Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone
  • Android

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

Buy Used
$4.85
Condition: Used: Acceptable
Comment: Solid study copy missing its data disc or access code.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Programming Language Pragmatics Hardcover – October 25, 1999

4.8 out of 5 stars 26 customer reviews

See all 5 formats and editions Hide other formats and editions
Price
New from Used from
Hardcover
"Please retry"
$8.56 $0.57

Top 20 lists in Books
Top 20 lists in Books
View the top 20 best sellers of all time, the most reviewed books of all time and some of our editors' favorite picks. Learn more

Editorial Reviews

Amazon.com Review

As a textbook suitable for the classroom or self-study, Michael Scott's Programming Language Pragmatics provides a worthy tour of the theory and practice of how programming languages are run on today's computers. Clearly organized and filled with a wide-ranging perspective on over 40 different languages, this book will be appreciated for its depth and breadth of coverage on an essential topic in computer science.

With references to dozens of programming languages, from Ada to Turing and everything in between (including C, C++, Java, and Perl), this book is a truly in-depth guide to how code is compiled (or interpreted) and executed on computer hardware. Early chapters tend to be slightly more theoretical (with coverage of regular expressions and context-free grammars) and will be most valuable to the computer science student, but much of this book is accessible to anyone seeking to widen their knowledge (especially since recent standards surrounding XML make use of some of the same vocabulary presented here).

The book has a comprehensive discussion of compilation and linking, as well as how data types are implemented in memory. Sections on functional and logical programming (illustrated with Scheme and Prolog, which are often used in AI research) can expand your understanding of how programming languages work. Final sections on the advantages--and complexities--of concurrent processing, plus a nice treatment of code optimization techniques, round out the text here. Each chapter provides numerous exercises, so you can try out the ideas on your own.

Students will benefit from the practical examples here, drawn from a wide range of languages. If you are a self-taught developer, the very approachable tutorial can give you perspective on the formal definitions of many computer languages, which can help you master new ones more effectively. --Richard Dragan

Topics covered: A survey of today's programming languages, compilation vs. interpretation, the compilation process, regular expression and context-free grammars, scanners and parsers, names, scopes and bindings, scope rules, overloading, semantic analysis, introduction to computer architecture, representing data, instruction sets, 680x0 and MIPs architectures, control flow and expression evaluation, iteration and recursion, data types, type checking, records, arrays, strings, sets, pointers, lists, file I/O, subroutines, calling sequences and parameter passing, exception handling, coroutines, compile back-end processing, code generation, linking, object-oriented programming basics, encapsulation and inheritance, late binding, multiple inheritance, functional and logical languages, Scheme and Prolog, programming with concurrency, shared memory and message passing, and code optimization techniques.

Review

"Michael Scott's book could have been entitled: Why Programming Languages Work. It takes a fresh look at programming languages by bringing together ideas and techniques usually covered in disparate language design, compiler, computer architecture, and operating system courses. 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 until now."


-Klaus Ostermann, Darmstadt University of Technology
NO_CONTENT_IN_FEATURE

China
Engineering & Transportation Books
Discover books for all types of engineers, auto enthusiasts, and much more. Learn more

Product Details

  • Hardcover: 858 pages
  • Publisher: Morgan Kaufmann; 1st edition (October 25, 1999)
  • Language: English
  • ISBN-10: 1558604421
  • ISBN-13: 978-1558604421
  • Product Dimensions: 9.6 x 7.7 x 1.7 inches
  • Shipping Weight: 3.2 pounds
  • Average Customer Review: 4.8 out of 5 stars  See all reviews (26 customer reviews)
  • Amazon Best Sellers Rank: #1,247,487 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

Format: Hardcover Verified Purchase
Over the years the Compilers: Principles, Techniques, and Tools (2nd Edition) (also knwon as the dragon book) has become the de facto standard for introducing compilers and related topics at universities. This is very unfortunate because "Programming Language Pragmatics" is in a completely different league and should be the one used instead. It gives the student (or the self taught) a complete and through overview of parsing, grammar, automata theory and other key language constructs. What really differentiates this book from others (and most notably the (in)famous "Dragon Book") is that it does so in a easy to understand manner and with lots of well written examples.

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.
1 Comment 57 of 58 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
Format: Paperback
Every good programmer should know more than one programming language, that much is almost a consensus. But more than that, every programmer should educate himself about programming languages in general, what they mean and how they work. It's important to know at least the major programming paradigms, because they form the "mental model" of computation that is available to a programmer in a language from that paradigm.

And then it's always illustrative to know about the differences in many common languages, to see where different decisions have been made and what are the consequences. To know that certain legacy languages (e.g. C, Fortran) have features that were not designed because they were the "best" option (for some definition of best), but because the design was constrained by what technology was currently available.

This knowledge is not only required of compiler writers. It should be required of every good programmer. Compiler writers, of course, must know this, and probably in more detail. But Scott's book is a good resource about programming languages, in a level of detail that I believe adequate for all programmers.

There are two main kinds of books on programming languages: they are "survey" and "implementation".

Survey books show how things work in a lot of languages, comparing them along the way. Often the comparison gets down to small details that can affect the meaning, or semantics, of similar programs written in these languages. These books contain one individual chapter for every major topic, and inside such a chapter all languages are compared in relation to the topic. For example, one such chapter covers "subroutines" and then compare a host of different languages on how they implement subroutines.
Read more ›
Comment 43 of 45 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
Format: Paperback
This is must read for every compiler engineer.

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.
Comment 52 of 56 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
Format: Hardcover
I have always enjoyed reading programming-language and compiler books and most of them are quite tough on a first-read.
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.
Comment 38 of 41 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

Most Recent Customer Reviews