Aims

This module aims to bring students up to date with current research in the
denotational approach to the semantics of programming languages, with the
objective of training students to start research in theoretical computer
science on the mathematical foundations of programming languages and its
applications.

Syllabus

Computational metalanguages [1 lecture]

Universal algebra and equational logic [2 lectures]

Algebraic theory of effects [2 lectures]

Effect handlers [2 lectures]

Effect-system semantics [1 lecture]

Second-order algebraic theories [2 lectures]

Untyped lambda-calculus and recursive domain equations [2 lectures]

Simply-typed lambda-calculus and logical relations [2 lecture]

Continuations and control effects [2 lectures]

Objectives

On completion of this module, students should:

be able to start research in
theoretical computer science on mathematical foundations of programming
languages and its applications.

Coursework

Essays

Practical work

None, but the course will include material for self-evaluation.

Assessment

The course will be assessed by means of an essay on one or more research
papers related to the syllabus. Papers will be chosen by students on their
own or from a given list of papers in accordance with the lecturers. The
essays will be marked by the lecturers and returned to the students.
Subsequently, a technical discussion with each student on the material of
their essay will take place. The mark for the course will be that of the
essay, with an upgrade for those students that give evidence of mastering the
subject during the discussion.