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
- Formal definition of programming languages. Abstract and concrete syntax. Review of semantic methods. Semantics of arithmetic and boolean expressions.
- Natural semantics of a simple imperative language and its properties.
- Structural operational semantics of a simple imperative language and its properties. Proof of equivalence of natural and structural operational semantics.
- Abstract implementation of languages on an abstract machine. Alternative approaches to reviewing of correctness.
- Denotational semantics. Introduction to recursive functions. Definition of fixed point. Finding of fixed point of selected functions.
- Denotational semantics of the while loop. Equivalence of denotational and structural operational semantics.
- Introduction to category theory. The rôle of categories in computer science. Categorical approaches to semantics of a simple procedural language.
- 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
|