Enregistré dans:
Détails bibliographiques
Auteurs principaux: Robinson, Benjamin, Yoshida, Nobuko
Format: Preprint
Publié: 2026
Sujets:
Accès en ligne:https://arxiv.org/abs/2604.06875
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866911575888101376
author Robinson, Benjamin
Yoshida, Nobuko
author_facet Robinson, Benjamin
Yoshida, Nobuko
contents Effpi is a framework for writing strongly-typed message-passing programs in Scala, where the compiler enforces the conformance of process implementations to specified protocol types. A compiler plugin is provided to verify properties of protocols, such as deadlock-freedom and liveness, by encoding the behavioural types into a variant of CCS. To address limitations in the expressiveness of the existing toolkit, we extend Effpi with external choice by introducing a branching operation. Upon accepting a message via a branch, protocols enforce a continuation which depends on the label (type) of the received message. We equip the branching operation with the ability to accept messages over more than one channel. Additionally, we introduce a "catch timeout" operation to allow processes to gracefully handle a lack of incoming messages. The enhanced expressiveness of Effpi is demonstrated through a number of examples, including an implementation of the Raft consensus algorithm.
format Preprint
id arxiv_https___arxiv_org_abs_2604_06875
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Branching Out: Existential External Choice in Effpi
Robinson, Benjamin
Yoshida, Nobuko
Programming Languages
Distributed, Parallel, and Cluster Computing
Effpi is a framework for writing strongly-typed message-passing programs in Scala, where the compiler enforces the conformance of process implementations to specified protocol types. A compiler plugin is provided to verify properties of protocols, such as deadlock-freedom and liveness, by encoding the behavioural types into a variant of CCS. To address limitations in the expressiveness of the existing toolkit, we extend Effpi with external choice by introducing a branching operation. Upon accepting a message via a branch, protocols enforce a continuation which depends on the label (type) of the received message. We equip the branching operation with the ability to accept messages over more than one channel. Additionally, we introduce a "catch timeout" operation to allow processes to gracefully handle a lack of incoming messages. The enhanced expressiveness of Effpi is demonstrated through a number of examples, including an implementation of the Raft consensus algorithm.
title Branching Out: Existential External Choice in Effpi
topic Programming Languages
Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2604.06875