Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Cover image Title page Table of Contents Copyright page About the Author Dedication Foreword Preface
Changes in the Fourth Edition The Companion Site Design & Implementation Sidebars Numbered and Titled Examples Exercise Plan How to Use the Book Supplemental Materials Acknowledgments for the Fourth Edition
I: Foundations
I: Foundations 1: Introduction
1.1 The Art of Language Design 1.2 The Programming Language Spectrum 1.3 Why Study Programming Languages? 1.4 Compilation and Interpretation 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
2: Programming Language Syntax
2.1 Specifying Syntax: Regular Expressions and Context-Free Grammars 2.2 Scanning 2.3 Parsing 2.4 Theoretical Foundations 2.5 Summary and Concluding Remarks 2.6 Exercises 2.7 Explorations 2.8 Bibliographic Notes
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 Meaning of Names within a Scope 3.6 The Binding of Referencing Environments 3.7 Macro Expansion 3.8 Separate Compilation 3.9 Summary and Concluding Remarks 3.10 Exercises 3.11 Explorations 3.12 Bibliographic Notes
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 Tree Grammars and Syntax Tree Decoration 4.7 Summary and Concluding Remarks 4.8 Exercises 4.9 Explorations 4.10 Bibliographic Notes
5: Target Machine Architecture
II: Core Issues in Language Design
II: Core Issues in Language Design 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
7: Type Systems
7.1 Overview 7.2 Type Checking 7.3 Parametric Polymorphism 7.4 Equality Testing and Assignment 7.5 Summary and Concluding Remarks 7.6 Exercises 7.7 Explorations 7.8 Bibliographic Notes
8: Composite Types
8.1 Records (Structures) 8.2 Arrays 8.3 Strings 8.4 Sets 8.5 Pointers and Recursive Types 8.6 Lists 8.7 Files and Input/Output 8.8 Summary and Concluding Remarks 8.9 Exercises 8.10 Explorations 8.11 Bibliographic Notes
9: Subroutines and Control Abstraction
9.1 Review of Stack Layout 9.2 Calling Sequences 9.3 Parameter Passing 9.4 Exception Handling 9.5 Coroutines 9.6 Events 9.7 Summary and Concluding Remarks 9.8 Exercises 9.9 Explorations 9.10 Bibliographic Notes
10: Data Abstraction and Object Orientation
10.1 Object-Oriented Programming 10.2 Encapsulation and Inheritance 10.3 Initialization and Finalization 10.4 Dynamic Method Binding 10.5 Mix-In Inheritance 10.6 True Multiple Inheritance 10.7 Object-Oriented Programming Revisited 10.8 Summary and Concluding Remarks 10.9 Exercises 10.10 Explorations 10.11 Bibliographic Notes
III: Alternative Programming Models
III: Alternative Programming Models 11: Functional Languages
11.1 Historical Origins 11.2 Functional Programming Concepts 11.3 A Bit of Scheme 11.4 A Bit of OCaml 11.5 Evaluation Order Revisited 11.6 Higher-Order Functions 11.7 Theoretical Foundations 11.8 Functional Programming in Perspective 11.9 Summary and Concluding Remarks 11.10 Exercises 11.11 Explorations 11.12 Bibliographic Notes
12: Logic Languages
12.1 Logic Programming Concepts 12.2 Prolog 12.3 Theoretical Foundations 12.4 Logic Programming in Perspective 12.5 Summary and Concluding Remarks 12.6 Exercises 12.7 Explorations 12.8 Bibliographic Notes
13: Concurrency
13.1 Background and Motivation 13.2 Concurrent Programming Fundamentals 13.3 Implementing Synchronization 13.4 Language-Level Constructs 13.5 Message Passing 13.6 Summary and Concluding Remarks 13.7 Exercises 13.8 Explorations 13.9 Bibliographic Notes
14: Scripting Languages
14.1 What Is a Scripting Language? 14.2 Problem Domains 14.3 Scripting the World Wide Web 14.4 Innovative Features 14.5 Summary and Concluding Remarks 14.6 Exercises 14.7 Explorations 14.8 Bibliographic Notes
IV: A Closer Look at Implementation
IV: A Closer Look at Implementation 15: Building a Runnable Program
15.1 Back-End Compiler Structure 15.2 Intermediate Forms 15.3 Code Generation 15.4 Address Space Organization 15.5 Assembly 15.6 Linking 15.7 Dynamic Linking 15.8 Summary and Concluding Remarks 15.9 Exercises 15.10 Explorations 15.11 Bibliographic Notes
16: Run-Time Program Management
16.1 Virtual Machines 16.2 Late Binding of Machine Code 16.3 Inspection/Introspection 16.4 Summary and Concluding Remarks 16.5 Exercises 16.6 Explorations 16.7 Bibliographic Notes
17: Code Improvement
A: Programming Languages Mentioned B: Language Design and Language Implementation C: Numbered Examples Bibliography Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion