Emilio's web page

Principles of Concurrent and Distributed Programming

Academic year 2025/26

Advanced course
Lecturer: Rocco De Nicola, CNR Pisa and GSSI
This course introduces models of concurrent and distributed programming. The course will explore this topic presenting different paradigms of coordination of concurrent and distributed systems (including shared-memory, message-passing, and tuple spaces) as well as related linguistic constructs. The theoretical underpinning will be reinforced by showing how popular programming languages feature concurrency as well as experimental prototype languages. The exam modality will be a group mini-project.

Lecture notes:

All the slides in a single file

Further readings:

Zoom recordings:

Programming examples

The “promotion” example

Projects

Project 1:

In [1,2] the smart house scenario described in [3] has been used as a case study for the analysis of the fair join pattern mechanism implemented in the Scala library described in the course. Give a realisation of the smart house scenario in XKlaim and one in Erlang, compare your solutions with the one described in [1], and analyse how the different models of distribution and concurrency compare with each other.

Explore the possibility of letting XKlaim processes and Erlang’s actor interact with each other.

[1] Philipp Haller, Ayman Hussein, Hernán Melgratti, Alceste Scalas, Emilio Tuosto. Fair Join Pattern Matching for Actors. ECOOP 2024.

[2] Philipp Haller, Ayman Hussein, Hernán Melgratti, Alceste Scalas, Emilio Tuosto. Fair Join Pattern Matching for Actors. Artefact at ECOOP 2024

[3] Humberto Rodríguez-Avila, Joeri De Koster, and Wolfgang De Meuter. Advanced join patterns for the actor model based on CEP techniques. Art Sci. Eng. Program., 5(2):10, 2021. doi:10.22152/programming-journal.org/2021/5/10.

Project 2:

Implement in XKlaim and in Erlang the following features of Go:

You can assume that only basic types such numerals, strings, booleans, etc. and channels can be exchanged in the communication of your encoding.

Guidelines, instructions, and deadlines

guidelines and instructions for the