Michael L. Scott
Dr Tom Crick MBCS
10 out of 10
This book is a key resource for any computer science student and is certainly faithful to its title - Programming Language Pragmatics.
The updated third edition of this popular book delivers the key concepts of programming languages and their implementation in a concise and intuitive way, illustrated with clear explanations and examples.
In addition to the coverage of traditional language topics, Scott’s book delves into the sometimes obscure, but essential, details of programming artifacts.
The descriptions of language theory, along with concrete implementations of how to realise them, are invariably presented in a language-agnostic fashion. And therein lies the strength of this book: whilst the main examples have been updated (with C and Intel x86 replacing Pascal and MIPS), it provides an organisational framework for learning new languages, irrespective of the paradigm.
Over 50 languages are discussed, illustrating not only the theoretical underpinnings of the languages that we use, but also the way in which they have been guided by the development of the computer architecture.
This trend continues with the challenges of exploiting multi/many-core architectures, with a new chapter devoted to concurrency. Further updates in this third edition to reflect current research and practice include virtualisation, run-time systems, dynamic compilation and binary translation.
While this may be heretical to some, Programming Language Pragmatics provides a more accessible introduction to many of the key topics than the classic Compilers: Principles, Techniques and Tools by Aho et al. (a.k.a. the ‘Dragon Book’) and provides a deep appreciation of the design and implementation issues of modern languages.
The material is aimed at an undergraduate computer science level, but is also suitable for self-study. Topics are often independent of previously presented material, making it easier to pick and choose areas for study. This is also supported by additional in-depth material and advanced discussion topics on the companion CD.
In summary, this new edition provides both students and professionals alike a solid understanding of the most important issues driving software development today - an essential purchase for any serious programmer or computer scientist!
Further Information: Morgan Kaufmann