Chapters: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | A | B

- Context-free Grammars
- Context-sensitive Grammars
- Exercises

- Ambiguity
- Context Constraints in Wren
- Semantic Errors in Wren
- Exercises

- Exercises

- Abstract Syntax Trees
- Abstract Syntax of a Programming Language
- Exercises

- Exercises

- Motivating Logic Grammars
- Improving the Parser
- Prolog Grammar Rules
- Parameters in Grammars
- Executing Goals in a Logic Grammar
- Exercises

- Handling Left Recursion
- Left Factoring
- Exercises

- Examples of Attribute Grammars
- Formal Definitions
- Semantics via Attribute Grammars
- Exercises

- The Symbol Table
- Commands
- Expressions

- Declarations
- Commands
- Expressions

- Fortran String Literals
- Derivation Trees
- Exercises

- Declarations
- Commands and Exrpessions
- Exercises

- Implementing Two-level Grammars in Prolog
- Two-level Grammars and Logic Programming
- Exercises

- Syntax of the Lambda Calculus
- Curried Functions
- Semantics of Lambda Expressions
- Exercises

- Reduction Strategies
- Correlation with Parameter Passing
- Constants in the Pure Lambda Calculus
- Functional Programming Languages
- Exercises

- Scanner and Parser
- The Lambda Calculus Evaluator
- Exercises

- Metacircular Interpreter
- Running the Interpreter
- Exercises

- Displaying Failure
- Exercises

- A Program Translation
- Exercises

- Expressions
- Commands
- Exercises

- Commands
- Expressions
- Exercises

- VDL
- Exercises

- Example
- Parameter Passing
- Static Scoping
- Exercises

- Exercises

- Specifying Syntax
- Inference Systems and Structural Induction
- Exercises

- Semantics of Expressions in Wren
- Example
- Outcomes
- Exercises

- A Sample Computation
- Semantic Equivalence
- Natural Semantics
- Exercises

- Commands
- Expressions
- Top-Level Driver
- Exercises

- The Syntactic World
- The Semantic World
- The Connection between Syntax and Semantics
- Compositionality
- Exercises

- Calculator Semantics
- Semantic Functions
- A Sample Calculation
- Exercises

- Semantic Domains
- Language Constructs in Wren
- Auxiliary Functions
- Semantic Equations
- Error Handling
- Semantic Equivalence
- Input and Output
- Elaborating a Denotational Definition
- Exercises

- Exercises

- Environments
- Stores
- Semantic Functions
- Semantic Equations
- Procedures
- Exercises

- Exercises

- Continuations
- The Programming Language Gull
- Auxiliary Functions
- Semantic Equations
- The Error Continuation
- Exercises

- Recursive Definitions of Functions
- Recursive Definitions of Sets (Types)
- Modeling Nontermination
- Exercises
- Elementary Domains
- Product Domains
- Sum Domains (Disjoint Unions)
- Function Domains
- Continuity of Functions on Domains
- Exercises
- First Step
- Second Step
- Continuous Functionals
- Fixed points for Nonrecursive Functions
- Revisiting Denotational Semantics
- Fixed-Point Induction
- Exercises
- Conditional Expressions
- Paradoxical Combinator
- Fixed-Point Identity
- Exercises
- Axiomatic Semantics of Programming Languages
- Assignment Command
- Input and Output
- Rules of Inference
- While Command and Loop Invariants
- More on Loop Invariants
- Nested While Loops
- Exercises
- Blocks
- Nonrecursive Procedures
- Recursive Procedures
- Exercises
- Steps in Showing Termination
- Termination of Recursive Procedures
- Exercises
- Table of Cubes
- Binary Search
- Exercises
- A Module for Truth Values
- Module Syntax
- A Module for Natural Numbers
- A Module for Characters
- A Parameterized Module and Some Instantiations
- A Module for Finite Mappings
- Exercises
- Ground Terms
- Sigma-Algebras
- A Congruence from the Equations
- The Quotient Algebra
- Homomorphisms
- Consistency and Completeness
- Exercises
- Data Abstraction
- A Module for Unbounded Queues
- Implementing Queues as Unbounded Arrays
- Verification of Queue Axioms
- ADTs As Algebras
- Abstract Syntax and Algebraic Specifications
- Exercises
- Types and Values in Wren
- Abstract Syntax for Wren
- A Type Checker for Wren
- An Interpreter for Wren
- A Wren System
- Exercises
- Module Booleans
- Module Naturals
- Declarations
- Commands
- Expressions
- Exercises
- Data and Sorts
- Yielders
- Actions
- The Functional Facet
- The Imperative Facet
- Exercises
- Semantic Functions
- Semantic Equations
- A Sample Calculation
- Exercises
- The Programming Language Wren
- Exercises
- The Reflective Facet and Procedures
- Procedures Without Parameters
- Procedures With A Parameter
- Recursive Definitions
- Translating to Action Notation
- Exercises
- Exercises
- Prolog
- Prolog Syntax
- BNF Syntax for Prolog
- A Prolog Example
- Predefined Predicates
- Recursion in Prolog
- Control Aspects of Prolog
- Lists in Prolog
- Sorting in Prolog
- The Logical Variable
- Equality and Comparison in Prolog
- Input and Output Predicates
- Lisp
- Scheme Syntax
- Functions on S-expressions
- Lists in Scheme
- Syntax for Functions
- Scheme Evaluation
- Special Forms
- Defining Functions in Scheme
- Recursive DeŽnitions
- Lambda Notation
- Recursive Functions on Lists
- Scope Rules in Scheme
- Proving Correctness in Scheme
- Higher-Order Functions
- Currying
- Tail Recursion

Bibliography

Index

To Ken Slonneger's Home Page