Software Transactional Memory in Effekt

Concurrent programs are widely used in practice, but notoriously difficult to get right, particularly when dealing with the locking and synchronization of shared memory between threads. However, ensuring correctness becomes even more challenging when individual components, which may function correctly in isolation, interact with each other. Software Transactional Memory offers a solution by abstracting over the low-level details of concurrent programming, providing atomic blocks that enable modular composibility of transactions.

The goal of this thesis is to utilise algebraic effects and handlers of the Effekt programming language to design and implement Software Transactional Memory, thereby addressing the complexities of concurrent programming.


Jiří Beneš

Jonathan Brachthäuser