Correctly Implementing Synchronous Message Passing in the Pi-Calculus By Concurrent Haskell's MVars

08/31/2020
by   Manfred Schmidt-Schauß, et al.
0

Comparison of concurrent programming languages and correctness of program transformations in concurrency are the focus of this research. As criterion we use contextual semantics adapted to concurrency, where may – as well as should – convergence are observed. We investigate the relation between the synchronous pi-calculus and a core language of Concurrent Haskell (CH). The contextual semantics is on the one hand forgiving with respect to the details of the operational semantics, and on the other hand implies strong requirements for the interplay between the processes after translation. Our result is that CH embraces the synchronous pi-calculus. Our main task is to find and prove correctness of encodings of pi-calculus channels by CH's concurrency primitives, which are MVars. They behave like (blocking) 1-place buffers modelling the shared-memory. The first developed translation uses an extra private MVar for every communication.We also automatically generate and check potentially correct translations that reuse the MVars where one MVar contains the message and two additional MVars for synchronization are used to model the synchronized communication of a single channel in the pi-calculus.Our automated experimental results lead to the conjecture that one additional MVar is insufficient.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/24/2021

Minimal Translations from Synchronous Communication to Synchronizing Locks

In order to understand the relative expressive power of larger concurren...
research
07/30/2021

Minimal Translations from Synchronous Communication to Synchronizing Locks (Extended Version)

In order to understand the relative expressive power of larger concurren...
research
11/22/2021

A Formally-Verified Framework for Fair Synchronization in Kotlin Coroutines

Writing concurrent code that is both correct and efficient is notoriousl...
research
07/09/2018

A Formal Approach to Open Multiparty Interactions

We present a process algebra aimed at describing interactions that are m...
research
08/16/2022

Asynchronous Functional Sessions: Cyclic and Concurrent (Extended Version)

We present Concurrent GV (CGV), a functional calculus with message-passi...
research
05/30/2022

A Probabilistic Call-by-Need Lambda-Calculus – Extended Version

To support the understanding of declarative probabilistic programming la...
research
03/29/2022

Towards the Future: Bring Program Correctness back to the focus

Program correctness used to be the main concern of computer software in ...

Please sign up or login with your details

Forgot password? Click here to reset