Scalas, Alceste, Yoshida, Nobuko and Benussi, Elias (2019). Verifying message-passing programs with dependent behavioural types. IN: PLDI 2019 - Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. McKinley, Kathryn S. and Fisher, Kathleen (eds) USA: ACM.
Abstract
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this difficulty by offering message-passing abstractions, such as actors (e.g., Erlang, Akka, Orleans) or processes (e.g., Go): they allow for simpler reasoning w.r.t. shared-memory concurrency, but do not ensure that a program implements a given specification. To address this challenge, it would be desirable to specify and verify the intended behaviour of message-passing applications using types, and ensure that, if a program type-checks and compiles, then it will run and communicate as desired. We develop this idea in theory and practice. We formalise a concurrent functional language λπ, with a new blend of behavioural types (from π-calculus theory), and dependent function types (from the Dotty programming language, a.k.a. the future Scala 3). Our theory yields four main payoffs: (1) it verifies safety and liveness properties of programs via typeś level model checking; (2) unlike previous work, it accurately verifies channel-passing (covering a typical pattern of actor programs) and higher-order interaction (i.e., sending/receiving mobile code); (3) it is directly embedded in Dotty, as a toolkit called Effpi, offering a simplified actor-based API; (4) it enables an efficient runtime system for Effpi, for highly concurrent programs with millions of processes/actors.
Publication DOI: | https://doi.org/10.1145/3314221.3322484 |
---|---|
Additional Information: | © ACM, 2019. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. |
Event Title: | 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019 |
Event Type: | Other |
Event Dates: | 2019-06-22 - 2019-06-26 |
Uncontrolled Keywords: | Actors,Behavioural types,Dependent types,Dotty,Model checking,Processes,Scala,Temporal logic,Software |
ISBN: | 9781450367127 |
Last Modified: | 17 Dec 2024 08:29 |
Date Deposited: | 29 Apr 2019 13:40 |
Full Text Link: |
http://mrg.doc. ... 19-preprint.pdf |
Related URLs: |
http://www.scop ... tnerID=8YFLogxK
(Scopus URL) |
PURE Output Type: | Conference contribution |
Published Date: | 2019-06-08 |
Accepted Date: | 2019-04-24 |
Authors: |
Scalas, Alceste
(
0000-0002-1153-6164)
Yoshida, Nobuko Benussi, Elias |