Semantics of Programming Languages

Chair for Logic and Verification

Overview

Professor Prof.Ā Tobias Nipkow
Lecture Tuesday 14:15-15:45 and Wednesday 08:30-10:00 im Galileo (8120.EG.001)
Tutorial Thursday 10:15-12:00
First Lecture/Tutorial October 15 / October 17
Language English
TUMonline Course IN2055
Submission System Proving for Fun
Discussion Platform Zulip streams: Announcements and Discussion (or subscribe via the Isabelle emoji)
Tutorial Organizers Lukas Stevens, Kevin Kappelmann (mailto: semantics@proof.cit.tum.de)
Exam To be announced

Organization

Material

Homework

Aims

The aim of this course is to understand the foundations of programming language semantics and use it to formally specify and prove correct properties about (simple) programming languages and programs. We will explore different approaches to specify the semantics of programming languages (operational, denotational, axiomatic). We will reason formally about semantic properties of programs and programing languages using the Isabelle proof assistant. We will also derive and prove correct simple program analyzers and compilers using Isabelle.

At the end of the course students should:

Important Notes

Literature