Special Topics:

Semantics of Programming Languages

339.350 1KV Steingartner Block Begin: 12.05.2025

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.

Lecturer

Dr. William Steingartner
Technical University Kosice, Slovakia

Contents

  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
Mon 12.05.2025 14:30 - 17:00
Tue 13.05.2025 13:45 - 17:00
Wed 14.05.2025 13:45 - 17:00
Thu 15.05.2025 13:45 - 17:00

Exam

There will be a written exam on June 3, 2025, 15:30-16:30.

Downloads

slides
papers
documents