Lesson 263

Programming Language Semantics

operational · denotational · axiomatic · effects

1:00

Four rigorous frameworks for defining what programs mean — operational, denotational, axiomatic, and type-and-effect systems.

By the end, you can

  • Distinguish syntax from semantics and explain why a formal semantics is valuable.
  • Contrast small-step and big-step operational semantics, and identify the unique advantage of small-step.
  • Describe what a denotational semantics assigns to an assignment, a sequence, and a while loop.
  • Explain why a while loop requires a least fixed point and sketch the Kleene chain construction.
  • Read a Hoare triple and apply the assignment axiom backward to derive a precondition.
  • Identify a valid loop invariant and use it to prove a postcondition once the loop exits.
  • State the progress and preservation theorems and explain how they together prove type soundness.
  • Interpret an effect annotation on a function type and explain what it guarantees statically.
Up next in Advanced Algorithms, Math & PL Theory
Questions or feedback?