Programming language pragmatics

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 t...

Celý popis

Uložené v:
Podrobná bibliografia
Hlavný autor: Scott, Michael Lee
Médium: E-kniha Kniha
Jazyk:English
Vydavateľské údaje: San Francisco, Calif Elsevier 2006
Amsterdam Morgan Kaufmann
Elsevier Science & Technology
Vydanie:2
Predmet:
ISBN:0126339511, 9780126339512, 9780123705891, 0123705894
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Obsah:
  • 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