We present Effpi: an experimental toolkit for strongly-typed concurrent and distributed programming in Dotty, with verification capabilities based on type-level model checking. Effpi addresses a main challenge in creating and maintaining concurrent programs: errors like protocol violations, deadlocks, and livelocks are often spotted late, at run-time, when applications are tested or (worse) deployed. Effpi aims at finding them early, when code is written and compiled. Effpi provides: (1) a set of Dotty classes for describing communication protocols as types; (2) an embedded DSL for concurrent programming, with process-based and actor–based abstractions; (3) a Dotty compiler plugin to verify whether protocols and programs enjoy desirable pro...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
We present a methodology for the verification of Message Passing Interface (MPI) programs written...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
We present Effpi: an experimental toolkit for strongly-typed concurrent and distributed programming ...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...
In large-scale distributed systems, each application is realised through interactions among distribu...
This paper presents Discourje: a runtime verification framework for communication protocols in Cloju...
This paper presents an approach to verify safety properties of Erlang-style, higher-order concurrent...
With distributed computing becoming ubiquitous in the modern era, safe distributed programming is an...
Session types are a well-established approach to communication correctness in message-passing proces...
Accepted papers list: https://2020.splashcon.org/track/splash-2020-oopsla#event-overviewWith distrib...
Session types provide a typing discipline for message-passing systems. However, most session type ap...
Modern software systems rely on communication, for example mobile applcations communicating with a c...
We introduce Teatrino, a toolchain that supports handling multiparty protocols with crash-stop failu...
The age of writing single-threaded applications is over. To develop scalable applications, developer...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
We present a methodology for the verification of Message Passing Interface (MPI) programs written...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
We present Effpi: an experimental toolkit for strongly-typed concurrent and distributed programming ...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...
In large-scale distributed systems, each application is realised through interactions among distribu...
This paper presents Discourje: a runtime verification framework for communication protocols in Cloju...
This paper presents an approach to verify safety properties of Erlang-style, higher-order concurrent...
With distributed computing becoming ubiquitous in the modern era, safe distributed programming is an...
Session types are a well-established approach to communication correctness in message-passing proces...
Accepted papers list: https://2020.splashcon.org/track/splash-2020-oopsla#event-overviewWith distrib...
Session types provide a typing discipline for message-passing systems. However, most session type ap...
Modern software systems rely on communication, for example mobile applcations communicating with a c...
We introduce Teatrino, a toolchain that supports handling multiparty protocols with crash-stop failu...
The age of writing single-threaded applications is over. To develop scalable applications, developer...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
We present a methodology for the verification of Message Passing Interface (MPI) programs written...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...