Journal article
Branching Out: Existential External Choice in Effpi
- Abstract:
- Effpi [21,22] 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 [14].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 [16].
- Publication status:
- Published
- Peer review status:
- Peer reviewed
Actions
Access Document
- Files:
-
-
(Preview, Version of record, pdf, 195.7KB, Terms of use)
-
- Publisher copy:
- 10.4204/eptcs.444.4
Authors
- Publisher:
- Open Publishing Association
- Journal:
- Electronic Proceedings in Theoretical Computer Science More from this journal
- Volume:
- 444
- Pages:
- 34-44
- Publication date:
- 2026-04-07
- DOI:
- ISSN:
-
2075-2180
- Language:
-
English
- Keywords:
- Pubs id:
-
2409128
- Local pid:
-
pubs:2409128
- Source identifiers:
-
W7151569912
- Deposit date:
-
2026-05-14
- ARK identifier:
This ORA record was generated from metadata provided by an external service. It has not been edited by the ORA Team.
Terms of use
- Copyright date:
- 2026
If you are the owner of this record, you can report an update to it here: Report update to this record