Syntax and Semantics of Programming Languages


This free online book presents a panorama of techniques in formal syntax, operational semantics and formal semantics. Includes valuable hands-on laboratory exercises.

Laboratory Activities
Chapter 2: Scanning and parsing Wren
Chapter 3: Context checking Wren using an attribute grammar
Chapter 4: Context checking Hollerith literals using a two-level grammar
Chapter 5: Evaluating the lambda calculus using its reduction rules
Chapter 6: Self-definition of Scheme (Lisp)
Self-definition of Prolog
Chapter 7: Translating (compiling) Wren programs following an attribute
Chapter 8: Interpreting the lambda calculus using the SECD machine
Interpreting Wren according to a definition using structural
operational semantics
Chapter 9: Interpreting Wren following a denotational specification
Chapter 10: Evaluating a lambda calculus that includes recursive definitions
Chapter 12: Interpreting Wren according to an algebraic specification of
the language
Chapter 13: Translating Pelican programs into action notation following a
specification in action semantics