Semantics of Programming Languages

Time and Location

Slides and Lecture Material

Aims

The aim of this course will be to introduce the structural, operational approach to programming language semantics. It will show how this formalism is used to specify the meaning of some simple programming language constructs and to reason formally about semantic properties of programs. For the reasoning part the theorem prover Isabelle will be used. Particular topics include the untyped lambda-calculus, simple type systems and the correctness of compilers.

At the end of the course students should

  • be familiar with rule-based presentations of the operational semantics of some simple imperative, functional and interactive program constructs
  • be able to prove properties of an operational semantics using various forms of induction (mathematical, structural, and rule-based) and
  • be familiar with the theorem prover Isabelle

Recommended Books

  • Pierce (2002). Types and Programming Languages. MIT Press.
  • Gunter (1992). Semantics of Programming Languages. MIT Press.
  • Nipkow, Paulson and Wenzel (2007). Tutorial on Isabelle. Springer.

To obtain the ECTS credit points assigned to this course, you have to

  • be present in all lectures,
  • actively participate in discussions,
  • solve all exercises in Isabelle and
  • sit an end-of-term exam

Similar courses exist at

Last modified: Wed Jul 9 15:25:16 CEST 2008 [Validate this page.]