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.
Building similarity graph...
Analyzing shared references across papers
Loading...
Robinson et al. (Tue,) studied this question.
www.synapsesocial.com/papers/69d895046c1944d70ce05f57 — DOI: https://doi.org/10.4204/eptcs.444.4
B. J. Robinson
Nobuko Yoshida
Electronic Proceedings in Theoretical Computer Science
University of Oxford
Building similarity graph...
Analyzing shared references across papers
Loading...