← Back to PhD Topics Reversible Programming Languages DC2

Concurrency and Distribution in Reversible Languages

Supervisor: Ivan Lanese

University of Bologna, Italy

Objectives

The DC will study extensions of reversible programming languages to support concurrency and distribution. This includes primitives to spawn processes, and for inter-process interaction, in both the shared memory (with synchronisation to avoid interferences) and the message passing setting. While such extensions can be provided as libraries, modern trends suggest to include such constructs in the core language, as in the (non-reversible) languages Go, Scala or Erlang. Initial work will build on existing reversible programming languages such as Janus, ROOPL or Joule, but the DC will then interact with DC1 to ensure compatibility of the developments.

Expected Results

1) An extension of an existing reversible programming language and of the related theory with primitives for concurrency and distribution; 2) An open source implementation of the extension developed in 1).

Planned Secondments

M14, UCPH, R. Glück, features for reversible languages; M28, AURI, C. Aubert: message passing concurrency; M36, RUG, J. Perez: types for concurrency.