Special Topics:

Semantics of Programming Languages

339.350 1KV Steingartner Block Begin: 14.03.2016

Course Description

This course is complement and a continuation of the course "Formal Semantics of Programming Languages" in the Major Subject "Software Engineering".
Students will become familiar with several ways of defining the semantics of programming languages. They will learn about the most important methods of semantic descriptions, e.g. operational semantics, denotational semantics and natural semantics. They will also gain knowledge about applying particular methods in design, definition and implementation of programming languages.


Dr. William Steingartner
Technical University Kosice, Slovakia


  1. Formal definition of programming languages. Abstract and concrete syntax. Review of semantic methods. Semantics of arithmetic and boolean expressions.
  2. Natural semantics of a simple imperative language and its properties.
  3. Structural operational semantics of a simple imperative language and its properties. Proof of equivalence of natural and structural operational semantics.
  4. Abstract implementation of a language on an abstract machine. Alternative approaches to reviewing of correctness.
  5. Denotational semantics. Introduction to recursive functions. Definition of fixed point. Finding of fixed point of selected functions.
  6. Denotational semantics of the while cycle. Equivalence of denotational and structural operational semantics.
  7. Action semantics as a new semantic method and its properties.
  8. Introduction to category theory. The rôle of categories in computer sciences. Categorical approach to semantics of simple procedural language.

Lecture times

Date Time Room
Mo 14.03.2016 14:30 - 17:00 T 406/1
Tu 15.03.2016 13:45 - 17:00 K 223B
We 16.03.2016 13:45 - 17:00 S3 218
Th 17.03.2016 13:45 - 17:00 S3 218


There will be a written exam on Thursday April 14, 17:15 - 18:15, HS 6