Categorical message passing language ensures deadlock and livelock freedom

Categorical Message Passing Language (CaMPL): Syntax and Semantics

Programming LanguagesDistributed, Parallel, and Cluster ComputingLogic in Computer Science

Summary

Concurrent programs often face problems like deadlocks, where processes get stuck waiting for each other, and livelocks, where they keep running without making progress. The authors introduce CaMPL, a new programming language designed using advanced mathematics called linear actegories, to avoid these issues. CaMPL guarantees that certain kinds of programs will never deadlock or livelock. The language’s type system helps ensure these properties, and it has a working prototype implemented in Haskell that people can try online.

What this means in practice

Authors

Robin Cockett, Daniel Kiyoshi Hashimoto, Alexanna Little Berg, Priyaa Varshinee Srinivasan

Abstract

We introduce a novel functional-style concurrent programming language called Categorical Message Passing Language (CaMPL) which is designed using the mathematics of linear actegories. This mathematical underpinning gives CaMPL programs useful properties such as deadlock freedom, and additionally, livelock freedom for programs without general recursive processes. We explore CaMPL's type system through a series of code examples. The current proto-alpha version of the compiler and the abstract machine is implemented in Haskell. A reader is encouraged to experiment with writing CaMPL programs either using the online compiler https://campl-app.vercel.app/ or by installing CaMPL from https://campl-ucalgary.github.io -- our website has detailed instructions on how to run CaMPL code.