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:
- [BTBS26] Khalid Bourr, Francesco Tiezzi, Lorenzo Bettini, and Stefano Seriani. Translating bpmn models into x-klaim programs for developing multi-robot missions. International Journal on Software Tools for Technology Transfer, pages 1433–2787, January 2026.
- [CG89] Nicholas Carriero and David Gelernter. Linda in context. Communications of the ACM, 32(4):444–458, April 1989.
- [Eck02]Bruce Eckel. Thinking in Java, 4rd Edition. Prentice-Hall, December 2002. Chapter 13. The beta version of the 3rd edition is available at http://www.javaclue.org/pub/java/ebooks/tij/tij-3rd-ed.pdf.
- [FG96] Cedric Fournet and George Gonthier. The reflexive CHAM and the join-calculus. In Conference Record of POPL ’96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 372–385, St. Petersburg Beach, Florida, January 1996.
- [HHM+ 24a] Philipp Haller, Ayman Hussein, Hernán C. Melgratti, Alceste Scalas, and Emilio Tuosto. Fair join pattern matching for actors. 35 / 35In Jonathan Aldrich and Guido Salvaneschi, editors, 38th European Conference on Object-Oriented Programming, ECOOP 2024, Vienna, Austria, September 16-20, 2024, volume 313 of LIPIcs, pages 17:1–17:28. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2024.
- [HHM+ 24b] Philipp Haller, Ayman Hussein, Hernán C. Melgratti, Alceste Scalas, and Emilio Tuosto. Fair join pattern matching for actors (artifact). Dagstuhl Artifacts Ser., 10(2):8:1–8:3, 2024.
- [Tro94] John A. Trono. A new exercise in concurrency. SIGCSE Bull., 26(3):8–10, September 1994.
Zoom recordings:
Programming examples
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:
- synchronous and asynchronous communication
- channel mobility
- close operation
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
- Form two groups according to your preferences (groups’ size should be at least 2) and chose one of the projects below
- The groups should work on different projects
- Besides the addressing the assignement, you can include aspects of your interest (e.g., testing your solution)
- The exam consists of
- a short report (2-3 pages) discussing salient aspects of your solutions and explaining the approach you followed
- a presentation
- You can use LLMs; if you do so, the report should describe how LLMs were used and give a critical assessment of their adoption
- Deadlines:
- report: April 28, 2026 (email emilio.tuosto@gssi.it and rocco.denicola@imtlucca.it)
- presentation: April 29, 2026 (venue and times will be communicated in due course)
guidelines and instructions for the