
Programming Language Pragmatics.
Title:
Programming Language Pragmatics.
Author:
Scott, Michael L.
ISBN:
9780080515168
Personal Author:
Edition:
2nd ed.
Physical Description:
1 online resource (915 pages)
Contents:
Front cover -- About the Author -- Copyright page -- Foreword -- Contents -- Preface -- Part I. Foundations -- Chapter 1. Introduction -- 1.1 The Art of Language Design -- 1.2 The Programming Language Spectrum -- 1.3 Why Study Programming Languages? -- 1.5 Programming Environments -- 1.6 An Overview of Compilation -- 1.7 Summary and Concluding Remarks -- 1.8 Exercises -- 1.9 Explorations -- 1.10 Bibliographic Notes -- Chapter 2. Programming Language Syntax -- 2.1 Specifying Syntax -- 2.3 Parsing -- 2.4 Theoretical Foundations -- 2.5 Summary and Concluding Remarks -- 2.6 Exercises -- 2.7 Explorations -- 2.8 Bibliographic Notes -- Chapter 3. Names, Scopes, and Bindings -- 3.1 The Notion of Binding Time -- 3.2 Object Lifetime and Storage Management -- 3.3 Scope Rules -- 3.4 Implementing Scope -- 3.5 The Binding of Referencing Environments -- 3.6 Binding Within a Scope -- 3.7 Separate Compilation -- 3.8 Summary and Concluding Remarks -- 3.9 Exercises -- 3.10 Explorations -- 3.11 Bibliographic Notes -- Chapter 4. Semantic Analysis -- 4.1 The Role of the Semantic Analyzer -- 4.2 Attribute Grammars -- 4.3 Evaluating Attributes -- 4.4 Action Routines -- 4.5 Space Management for Attributes -- 4.6 Decorating a Syntax Tree -- 4.7 Summary and Concluding Remarks -- 4.8 Exercises -- 4.9 Explorations -- 4.10 Bibliographic Notes -- Chapter 5. Target Machine Architecture -- 5.1 The Memory Hierarchy -- 5.2 Data Representation -- 5.3 Instruction Set Architecture -- 5.4 Architecture and Implementation -- 5.5 Compiling for Modern Processors -- 5.6 Summary and Concluding Remarks -- 5.7 Exercises -- 5.8 Explorations -- 5.9 Bibliographic Notes -- Part II. Core Issues in Language Design -- Chapter 6. Control Flow -- 6.1 Expression Evaluation -- 6.2 Structured and Unstructured Flow -- 6.3 Sequencing -- 6.4 Selection -- 6.5 Iteration -- 6.6 Recursion -- 6.7 Nondeterminacy.
6.8 Summary and Concluding Remarks -- 6.9 Exercises -- 6.10 Explorations -- 6.11 Bibliographic Notes -- Chapter 7. Data Types -- 7.1 Type Systems -- 7.2 Type Checking -- 7.3 Records (Structures) and Variants (Unions) -- 7.4 Arrays -- 7.5 lines -- 7.6 Sets -- 7.7 Pointers and Recursive Types -- 7.8 Lists -- 7.9 Files and Input/Output -- 7.10 Equality Testing and Assignment -- 7.11 Summary and Concluding Remarks -- 7.12 Exercises -- 7.13 Explorations -- 7.14 Bibliographic Notes -- Chapter 8. Subroutines and Control Abstraction -- 8.1 Review of Stack Layout -- 8.2 Calling Sequences -- 8.3 Parameter Passing -- 8.4 Generic Subroutines and Modules -- 8.5 Exception Handling -- 8.6 Coroutines -- 8.7 Summary and Concluding Remarks -- 8.8 Exercises -- 8.9 Explorations -- 8.10 Bibliographic Notes -- Chapter 9. Data Abstraction and Object Orientation -- 9.1 Object-Oriented Programming -- 9.2 Encapsulation and Inheritance -- 9.3 Initialization and Finalization -- 9.4 Dynamic Method Binding -- 9.5 Multiple Inheritance -- 9.6 Object-Oriented Programming Revisited -- 9.7 Summary and Concluding Remarks -- 9.8 Exercises -- 9.9 Explorations -- 9.10 Bibliographic Notes -- Part III. Alternative Programming Models -- Chapter 10. Functional Languages -- 10.1 Historical Origins -- 10.2 Functional Programming Concepts -- 10.3 A Review/Overview of Scheme -- 10.4 Evaluation Order Revisited -- 10.5 Higher-Order Functions -- 10.6 Theoretical Foundations -- 10.7 Functional Programming in Perspective -- 10.8 Summary and Concluding Remarks -- 10.9 Exercises -- 10.10 Explorations -- 10.11 Bibliographic Notes -- Chapter 11. Logic Languages -- 11.1 Logic Programming Concepts -- 11.2 Prolog -- 11.3 Theoretical Foundations -- 11.4 Logic Programming in Perspective -- 11.5 Summary and Concluding Remarks -- 11.6 Exercises -- 11.7 Explorations -- 11.8 Bibliographic Notes.
Chapter 12. Concurrency -- 12.1 Background and Motivation -- 12.2 Concurrent Programming Fundamentals -- 12.3 Shared Memory -- 12.5 Summary and Concluding Remarks -- 12.6 Exercises -- 12.7 Explorations -- 12.8 Bibliographic Notes -- Chapter 13. Scripting Languages -- 13.1 What Is a Scripting Language? -- 13.2 Problem Domains -- 13.3 Scripting the World Wide Web -- 13.4 Innovative Features -- 13.5 Summary and Concluding Remarks -- 13.6 Exercises -- 13.7 Explorations -- 13.8 Bibliographic Notes -- Part IV. A Closer Look at Implementation -- Chapter 14. Building a Runnable Program -- 14.1 Back-End Compiler Structure -- 14.2 Intermediate Forms -- 14.4 Address Space Organization -- 14.5 Assembly -- 14.6 Linking -- 14.7 Dynamic Linking -- 14.8 Summary and Concluding Remarks -- 14.9 Exercises -- 14.10 Explorations -- 14.11 Bibliographic Notes -- Chapter 15. Code Improvement -- Appendix A. Programming Languages Mentioned -- Appendix B. Language Design and Language Implementation -- Appendix C. Numbered Examples -- Bibliography -- Index.
Abstract:
The innovative approach of the first edition of Programming Language Pragmatics provided students with an integrated view of programming language design and implementation, while offering a solid teaching text on timely language topics in a rigorous yet accessible style. The new edition carries on these distinctive features as well as the signature tradition of illustrating the most recent developments in programming language design with a variety of modern programming languages. Addresses the most recent developments in programming language design, including C99, C#, and Java 5 Introduces and discusses scripting languages throughout the book as well as in an entire new chapter Includes a comprehensive chapter on concurrency, with coverage of the new Java concurrency package (JSR 166) and the comparable mechanisms in C# Updates many sections and topics, including iterators, exceptions, polymorphism, templates/generics, scope rules and declaration ordering, separate compilation, garbage collection, and threads and synchronization Highlights the interaction and tradeoffs inherent in language design and language implementation decisions with over 100 "Design and Implementation" call-out boxes Adds end-of-chapter "Exploration" exercises-open-ended, research-type activities Provides review questions after sections for quick self-assessment Includes over 800 numbered examples to help the reader quickly cross-reference and access content.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Subject Term:
Genre:
Electronic Access:
Click to View