Distributed Programming with Distributed Protocols in Scala
Supervisor
Suitable for
Abstract
Session type systems facilitate the development of concurrent and distributed software by enabling programmers to describe communication protocols in types. Not only does this aid understanding and correctness of communicating code, it can guarantee desirable behavioural properties (e.g. deadlock-freedom). Concurrency libraries, e.g. Effpi (Scala), enable the use of session types in real-world programming languages and systems. The goal of this project is to understand basic of session types, to implement distributed protocols in Scala and investigate its usability.
Reference:
[1] Session Types https://dl.acm.org/doi/pdf/10.1145/2873052
[2] http://dx.doi.org/10.1145/3314221.3322484