Programming Languages and Formal Semantics

Programming Languages and Formal Semantics

Purpose:
The purpose of this course is to introduce a selection of programming paradigms, to ensure that the student is
familiar with and masters the associated basic programming concepts and techniques, fundamental concepts, techniques, and results regarding formal semantics of programming languages, as well as applications of these in various aspects of software development.

Contents:
The course will focus on functional languages, including concepts such as higher-order functions, lazy data structures, and polymorphism, reactive languages, including various communication disciplines, operational and axiomatic semantics of imperative languages, soundness and relative completeness, illustrative applications of semantics in compiler construction and software validation, experiments with verification tools.

Evaluation
Written examination, 4 hours, 13-scale

Lecturer
Olivier Danvy and Peter D. Mosses. 

Credits
2 points/10 ECTS

Semester
Fall