Programming Language Pragmatics, 3rd Edition
- Length: 944 pages
- Edition: 3
- Language: English
- Publisher: Morgan Kaufmann
- Publication Date: 2009-04-06
- ISBN-10: 0123745144
- ISBN-13: 9780123745149
- Sales Rank: #807071 (See Top 100 Books)
Programming Language Pragmaticsis the most comprehensive programming language textbook 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.
- Classic programming foundations text now updated to familiarize students with the languages they are most likely to encounter in the workforce, including including Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6.
- New and expanded coverage of concurrency and run-time systems ensures students and professionals understand the most important advances driving software today.
- Includes over 800 numbered examples to help the reader quickly cross-reference and access content.
As a textbook suitable for the classroom or self-study, Michael Scott’s Programming Language Pragmaticsprovides 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, 680×0 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.
Table of Contents
Part I: Foundations
Chapter 1: Introduction
Chapter 2: Programming Language Syntax
Chapter 3: Names, Scopes, and Bindings
Chapter 4: Semantic Analysis
Chapter 5: Target Machine Architecture
Part II: Core Issues in Language Design
Chapter 6: Control Flow
Chapter 7: DataTypes
Chapter 8: Subroutines and Control Abstraction
Chapter 9: Data Abstraction and Object Orientation
Part III: Alternative Programming Models
Chapter 10: Functional Languages
Chapter 11: Logic Languages
Chapter 12: Concurrency
Chapter 13: Scripting Languages
Part IV: A Closer Look at Implementation
Chapter 14: Building a Runnable Program
Chapter 15: Run-Time Program Management
Chapter 16: Code Improvement
Appendix A: Programming Languages Mentioned
Appendix B: Language Design and Language Implementation
Appendix C: Numbered Examples