Statically verified refinements for multiparty protocols

作者: Fangyi Zhou , Francisco Ferreira , Raymond Hu , Rumyana Neykova , Nobuko Yoshida

DOI: 10.1145/3428216

关键词: Distributed computingDeadlockCompilerData typeProtocol (object-oriented programming)ToolchainSession (computer science)Communications protocolComputer scienceInversion of control

摘要: With distributed computing becoming ubiquitous in the modern era, safe programming is an open challenge. To address this, multiparty session types (MPST) provide a typing discipline for message-passing concurrency, guaranteeing communication safety properties such as deadlock freedom. While originally MPST focus on aspects, and employ simple system payloads, protocols real world usually contain constraints payload. We introduce refined (RMPST), extension of MPST, that express data dependent via refinement types. implementation RMPST, toolchain called Session*, using Scribble, protocols, targeting F*, verification-oriented functional language. Users can describe protocol Scribble implement endpoints F* refinement-typed APIs generated from protocol. The compiler then statically verify refinements. Moreover, we use novel approach callback-styled API generation, providing static linearity guarantees with inversion control. evaluate our examples show it has little overhead compared to naive implementation, while underlying theory.

参考文章(11)
Laura Bocchi, Romain Demangeon, Nobuko Yoshida, A Multiparty Multi-session Logic trustworthy global computing. pp. 97- 111 ,(2012) , 10.1007/978-3-642-41157-1_7
Laura Bocchi, Kohei Honda, Emilio Tuosto, Nobuko Yoshida, A theory of design-by-contract for distributed multiparty interactions international conference on concurrency theory. ,vol. 6269, pp. 162- 176 ,(2010) , 10.1007/978-3-642-15375-4_12
Daniel Brand, Pitro Zafiropulo, On Communicating Finite-State Machines Journal of the ACM. ,vol. 30, pp. 323- 342 ,(1983) , 10.1145/322374.322380
António Ravara, Behavioural Types: from Theory to Tools River Publishers. ,(2017)
Simon Gay, António Ravara, Session Types with Linearity in Haskell River Publishers. ,(2017) , 10.13052/RP-9788793519817
Nadia Polikarpova, Deian Stefan, Jean Yang, Shachar Itzhaky, Travis Hance, Armando Solar-Lezama, Liquid information flow control Proceedings of the ACM on Programming Languages. ,vol. 4, pp. 1- 30 ,(2020) , 10.1145/3408987
ATSUSHI IGARASHI, PETER THIEMANN, YUYA TSUDA, VASCO T. VASCONCELOS, PHILIP WADLER, Gradual session types Journal of Functional Programming. ,vol. 29, pp. 1- 56 ,(2019) , 10.1017/S0956796819000169
Pierre-Malo Denielou, Nobuko Yoshida, Andi Bejleri, Raymond Hu, Parameterised Multiparty Session Types Logical Methods in Computer Science. ,vol. 8, ,(2012) , 10.2168/LMCS-8(4:6)2012
Andreas Abel, Gabriel Scherer, On Irrelevance and Algorithmic Equality in Predicative Type Theory Logical Methods in Computer Science. ,vol. 8, ,(2012) , 10.2168/LMCS-8(1:29)2012