Detailed information 
Original study plan 
Bachelor's programme Technical Mathematics 2022W 
Objectives 
Students learn the fundamental approaches to the formal description of the semantics of programmming languages and their relationships; they are able to formalize the semantics of simple languages and implement them in the form of interpreters for these languages.

Subject 
Abstract syntax of programming languages as the basis for the formalization of their semantics.
 Denotational Semantics: the formalization by a mathematical function that maps programs to mathematical structures.
 Operational Semantics: the formalization by a collection of reduction rules that map the initial state of a program to its final state.
 Axiomatic Semantics: the formalization by correctness assertions which allow us to draw conclusions about the input/output behavior of programs.
Proof of the equivalence of denotational and operational semantics of a simple imperative language; proof of soundness of its axiomatic semantics with respect to its denotational semantics; constructive implementation of the denotational semantics in the form of an interpreter.

Criteria for evaluation 
Written homework exercises/miniprojects (formalization of a language with a prototypical implementation as an interpreter).

Methods 
Slidebased lecture with practical examples of formalizations.

Language 
English and French 
Study material 
 Wolfgang Schreiner. Thinking Programs. Chapter "Programming Languages", Springer 2021.
 David A. Schmidt. Denotational Semantics  A Methodology for Language Development, Allyn and Bacon, Boston, MA, 1986.
 Glynn Winskel: The Formal Semantics of Programming Languages  An Introduction, Foundations of Computing Series, MIT Press, Cambridge, MA, 1994.
 David A. Schmidt: The Structure of Typed Programming Languages, Foundations of Computing Series, MIT Press, Cambridge, MA, 1994.
 Hanne Riis Nielson and Flemming Nielson. Semantics with Applications  A Formal Introduction, John Wiley & Sons, 1992.

Changing subject? 
No 
Further information 
https://risc.jku.at/courses/

Corresponding lecture 
^{(*)}TM1WIVOFSEM: VO Formale Semantik von Programmiersprachen (3 ECTS)
