Lecture 9: Programming Language Semantics

Background Material

Reading

Theme

This lecture introduces three techniques for formally specifying the semantics of programming languages: operational semantics (formal machine model), denotational semantics, and axiomatic semantics.

So far we have extensively used operational semantics (meta-circular interpreter and interpreters built using other languages), the approaches outlined are related but more mathematical. Formal mathematical approaches can be used to prove theorems about the language and for automated correctness proofs.

Topics

  1. Operational Semantics
  2. Denotational Semantics
  3. Axiomatic Semantics

Lecture Slides

  1. (lec9summary.pptx, lec9summary.pdf)

Exercises

Created: May 28, 2008 by jjohnson AT cs DOT drexel DOT DOT edu