Please use this identifier to cite or link to this item: http://bura.brunel.ac.uk/handle/2438/22168
Full metadata record
DC FieldValueLanguage
dc.contributor.authorZhou, F-
dc.contributor.authorFerreira, F-
dc.contributor.authorHu, R-
dc.contributor.authorNeykova, R-
dc.contributor.authorYoshida, N-
dc.date.accessioned2021-02-01T15:51:02Z-
dc.date.available2021-02-01T15:51:02Z-
dc.date.issued2020-11-13-
dc.identifier148-
dc.identifier.citationZhou, F., Ferreira, F., Hu, R., Neykova, R. and Yoshida, N. (2020) 'Statically verified refinements for multiparty protocols', Proceedings of the ACM on Programming Languages, 4 (OOPSLA), Article no. 148, pp. 1-30. doi: 10.1145/3428216.en_US
dc.identifier.urihttps://bura.brunel.ac.uk/handle/2438/22168-
dc.description.abstract© 2020 Copyright held by the owner/author(s). With distributed computing becoming ubiquitous in the modern era, safe distributed 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 the communication aspects, and employ a simple typing system for communication payloads, communication protocols in the real world usually contain constraints on the payload. We introduce refined multiparty session types (RMPST), an extension of MPST, that express data dependent protocols via refinement types on the data types. We provide an implementation of RMPST, in a toolchain called Session*, using Scribble, a toolchain for multiparty protocols, and targeting F*, a verification-oriented functional programming language. Users can describe a protocol in Scribble and implement the endpoints in F* using refinement-typed APIs generated from the protocol. The F* compiler can then statically verify the refinements. Moreover, we use a novel approach of callback-styled API generation, providing static linearity guarantees with the inversion of control. We evaluate our approach with real world examples and show that it has little overhead compared to a naive implementation, while guaranteeing safety properties from the underlying theory.-
dc.description.sponsorshipEPSRC EP/T006544/1, EP/K011715/1, EP/K034413/1, EP/L00058X/1, EP/N027833/1, EP/N028201/1, EP/T006544/1, EP/T014709/1 and EP/V000462/1, and NCSS/EPSRC VeTSSen_US
dc.format.extent1 - 30-
dc.language.isoenen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.rights© 2020 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution 4.0 International License.-
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/-
dc.titleStatically verified refinements for multiparty protocolsen_US
dc.typeArticleen_US
dc.identifier.doihttps://doi.org/10.1145/3428216-
dc.relation.isPartOfProceedings of the ACM on Programming Languages-
pubs.issueOOPSLA-
pubs.publication-statusPublished-
pubs.volume4-
dc.identifier.eissn2475-1421-
Appears in Collections:Dept of Computer Science Research Papers

Files in This Item:
File Description SizeFormat 
FullText.pdf390.78 kBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons