Show simple item record

dc.contributor.authorZhou, Fangyi
dc.contributor.authorFerreira, Francisco
dc.contributor.authorHu, Raymond
dc.contributor.authorNeykova, Rumyana
dc.contributor.authorYoshida, Nobuko
dc.date.accessioned2020-11-20T04:15:22Z
dc.date.available2020-11-20T04:15:22Z
dc.date.issued2020-11-13
dc.identifier.citationZhou , F , Ferreira , F , Hu , R , Neykova , R & Yoshida , N 2020 , Statically Verified Refinements for Multiparty Protocols . in Proceedings of the ACM on Programming Languages, . OOPSLA edn , vol. 4 , 148 , Proceedings of the ACM on Programming Languages (PACMPL) , ACM Press , New York, United States , pp. 1-30 . https://doi.org/10.1145/3428216
dc.identifier.issn2475-1421
dc.identifier.urihttp://hdl.handle.net/2299/23486
dc.description© 2020 The Author(s). This is an open access article distributed under the terms of the Creative Commons Attribution License (CC BY), https://creativecommons.org/licenses/by/4.0/
dc.description.abstractWith 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.en
dc.format.extent30
dc.format.extent440338
dc.language.isoeng
dc.publisherACM Press
dc.relation.ispartofProceedings of the ACM on Programming Languages,
dc.relation.ispartofseriesProceedings of the ACM on Programming Languages (PACMPL)
dc.subjectCode Generation
dc.subjectDistributed Programming
dc.subjectF
dc.subjectMultiparty Session Types (MPST)
dc.subjectRefinement Types
dc.subjectSoftware
dc.subjectSafety, Risk, Reliability and Quality
dc.titleStatically Verified Refinements for Multiparty Protocolsen
dc.contributor.institutionSchool of Physics, Engineering & Computer Science
dc.contributor.institutionDepartment of Computer Science
dc.identifier.urlhttp://www.scopus.com/inward/record.url?scp=85097572625&partnerID=8YFLogxK
rioxxterms.versionofrecord10.1145/3428216
rioxxterms.typeOther
herts.preservation.rarelyaccessedtrue


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record