- 1.Specifying Syntax
- Grammars and BNF
- The Programming Language Wren
- Variants of BNF
- Abstract Syntax
- 2. Introduction To Laboratory Activities
- Scanning
- Logic Grammars
- Parsing Wren
- 3. Attribute Grammars
- Concepts and Examples
- An Attribute Grammar for Wren
- Laboratory: Context Checking Wren
- 4. Two-Level Grammars
- Concepts and Examples
- A Two-Level Grammar for Wren
- Two-Level Grammars and Prolog
- 5. Lambda Calculus
- Concepts and Examples
- Lambda Reduction
- Laboratory : A Lambda Calculus Evaluator
- 6. Self-Definition Of Programming Languages
- Self-Definition of Lisp
- Self-Definition of Prolog
- 7. Translational Semantics
- Concepts and Examples
- Attribute Grammar Code Generation
- Laboratory: Implementing Code Generation
- 8. Traditional Operational Semantics
- Concepts and Examples
- SECD: An Abstract Machine
- Laboratory: Implementing the SECD maching
- Structural Operational Semantics: Introduction
- Structural Operational Semantics: Expressions
- Structural Operational Semantics: Commands
- Laboratory: Implementing Structural Operational Semantics
- 9. Denotational Semantics
- Concepts and Examples
- A Calculator Language
- The Denotational Semantics of Wren
- Laboratory: Implementing Denotational Semantics
- Denotational Semantics with Environments
- Checking Context-Sensitive Syntax
- Continuation Semantics
- 10. Domain Theory And Fixed-Point Semantics
- Concepts and Examples
- Domain Theory
- Fixed-Point Semantics
- Laboratory: Recursion in the Lambda Calculus
- 11. Axiomatic Semantics
- Concepts and Examples
- Axiomatic Semantics for Wren
- Axiomatic Semantics for Pelican
- Proving Termination
- Introduction to Program Derivation
- 12. Algebraic Semantics
- Concepts and Examples
- Mathematical Foundations
- Using Algebraic Specification
- Algebraic Semantics for Wren
- Laboratory: Implementing Algebraic Semantics
- 13. Action Semantics
- Concepts and Examples
- Action Semantics of a Calculator
- The Declarative Facet and Wren
- The Reflective Facet and Pelican
- Laboratory: Translating into Action Semantics
- Logic Programming with Prolog
- Functional Programming with Scheme
[back] to Formal Syntax and Semantics of Programming Languages