Special Topics:

Semantics of Programming Languages

339.350 1KV Steingartner Block Begin: 04.2019

Course Description

This course is a 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 languages 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. Introduction to category theory. The rôle of categories in computer science.
  8. Categorical approaches to semantics of a simple procedural language (categorical denotational semantics and categorical operational semantics).

Lecture times

To be announced.


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