Stump’s Programming Language Foundations is a short concise text that covers semantics, equally weighting operational and denotational semantics for several different programming paradigms: imperative, concurrent, and functional. Programming Language Foundations provides: an even coverage of denotational, operational an axiomatic semantics; extensions to concurrent and non-deterministic versions; operational semantics for untyped lambda calculus; functional programming; type systems; and coverage of emerging topics and modern research directions.
Part I: Central Topics
Chapter 1: Semantics of First-Order Arithmetic
Chapter 2: Denotational Semantics of While
Chapter 3: Axiomatic Semantics of While
Chapter 4: Operational Semantics of While
Chapter 5: Untyped Lambda Calculus
Chapter 6: Programming in Untyped Lambda Calculus
Chapter 7: Simple Type Theory
Part II: Extra Topics
Chapter 8: Nondeterminism and Concurrency
Chapter 9: More on Untyped Lambda Calculus
Chapter 10: Polymorphic Type Theory
Chapter 11: Functional Programming