Actris: Session-Type Based Reasoning in Separation Logic

被引:25
作者
Hinrichsen, Jonas Kastberg [1 ]
Bengtson, Jesper [1 ]
Krebbers, Robbert [2 ]
机构
[1] IT Univ Copenhagen, Copenhagen, Denmark
[2] Delft Univ Technol, Delft, Netherlands
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2020年 / 4卷 / POPL期
关键词
Message passing; actor model; concurrency; session types; Iris;
D O I
10.1145/3371074
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Message passing is a useful abstraction to implement concurrent programs. For real-world systems, however, it is often combined with other programming and concurrency paradigms, such as higher-order functions, mutable state, shared-memory concurrency, and locks. We present Actris: a logic for proving functional correctness of programs that use a combination of the aforementioned features. Actris combines the power of modern concurrent separation logics with a first-class protocol mechanism-based on session types-for reasoning about message passing in the presence of other concurrency paradigms. We show that Actris provides a suitable level of abstraction by proving functional correctness of a variety of examples, including a distributed merge sort, a distributed load-balancing mapper, and a variant of the map-reduce model, using relatively simple specifications. Soundness of Actris is proved using a model of its protocol mechanism in the Iris framework. We mechanised the theory of Actris, together with tactics for symbolic execution of programs, as well as all examples in the paper, in the Coq proof assistant.
引用
收藏
页数:30
相关论文
共 50 条
[21]   Session-ocaml: A session-based library with polarities and lenses [J].
Imai, Keigo ;
Yoshida, Nobuko ;
Yuen, Shoji .
SCIENCE OF COMPUTER PROGRAMMING, 2019, 172 :135-159
[22]   Expressive Modular Fine-Grained Concurrency Specification [J].
Jacobs, Bart ;
Piessens, Frank .
ACM SIGPLAN NOTICES, 2011, 46 (01) :271-282
[23]   Iris from the ground up A modular foundation for higher-order concurrent separation logic [J].
Jung, Ralf ;
Krebbers, Robbert ;
Jourdan, Jacques-Henri ;
Bizjak, Ales ;
Birkedal, Lars ;
Dreyer, Derek .
JOURNAL OF FUNCTIONAL PROGRAMMING, 2018, 28
[24]   RustBelt: Securing the Foundations of the Rust Programming Language [J].
Jung, Ralf ;
Jourdan, Jacques-Henri ;
Krebbers, Robbert ;
Dreyer, Derek .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2 (POPL)
[25]   Higher-Order Ghost State [J].
Jung, Ralf ;
Krebbers, Robbert ;
Birkedal, Lars ;
Dreyer, Derek .
ACM SIGPLAN NOTICES, 2016, 51 (09) :256-269
[26]  
Jung R, 2015, ACM SIGPLAN NOTICES, V50, P637, DOI [10.1145/2676726.2676980, 10.1145/2775051.2676980]
[27]  
Kabayashi N., 1996, Conference Record of POPL '96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, P358, DOI 10.1145/237721.237804
[28]  
Kobayashi N, 2006, LECT NOTES COMPUT SC, V4137, P233
[29]   MoSeL: A General, Extensible Modal Framework for Interactive Proofs in Separation Logic [J].
Krebbers, Robbert ;
Jourdan, Jacques-Henri ;
Jung, Ralf ;
Tassarotti, Joseph ;
Kaiser, Jan-Oliver ;
Timany, Amin ;
Chargueraud, Arthur ;
Dreyer, Derek .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES, 2018,
[30]   The Essence of Higher-Order Concurrent Separation Logic [J].
Krebbers, Robbert ;
Jung, Ralf ;
Bizjak, Ales ;
Jourdan, Jacques-Henri ;
Dreyer, Derek ;
Birkedal, Lars .
PROGRAMMING LANGUAGES AND SYSTEMS (ESOP 2017): 26TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2017, 10201 :696-723