Special Topics:

Semantics of Programming Languages

339.350 1KV Steingartner Block Begin: 13.05.2024

Course Description

This course is a complement and a continuation of the course "Formal Methods in Software Engineering" 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 loop. Equivalence of denotational and structural operational semantics.
  7. Introduction to category theory. The rôle of categories in computer science. Categorical approaches to semantics of a simple procedural language.
  8. Semantics of Domain-Specific Languages. The rôle of formal semantics in the scope of DSL implementations.

Lecture times

Date Time Room
Mo 13.05.2024 14:30 - 17:00 T911
Tu 14.05.2024 13:45 - 17:00 KHG I
We 15.05.2024 13:45 - 17:00 ESH 3
Th 16.05.2024 13:45 - 17:00 T 406/1


There will be a written exam on June 6, 2024, 15:30-16:30.