University of Hertfordshire

From the same journal

Statically Verified Refinements for Multiparty Protocols

Research output: Contribution to journalArticlepeer-review

Standard

Statically Verified Refinements for Multiparty Protocols. / Zhou, Fangyi; Ferreira, Francisco; Hu, Raymond; Neykova, Rumyana; Yoshida, Nobuko.

In: Proceedings of the ACM on Programming Languages, 20.11.2020.

Research output: Contribution to journalArticlepeer-review

Harvard

APA

Zhou, F., Ferreira, F., Hu, R., Neykova, R., & Yoshida, N. (2020). Statically Verified Refinements for Multiparty Protocols. Proceedings of the ACM on Programming Languages.

Vancouver

Author

Zhou, Fangyi ; Ferreira, Francisco ; Hu, Raymond ; Neykova, Rumyana ; Yoshida, Nobuko. / Statically Verified Refinements for Multiparty Protocols. In: Proceedings of the ACM on Programming Languages. 2020.

Bibtex

@article{0c4d4264c65a4611a2c7cc052156d3a4,
title = "Statically Verified Refinements for Multiparty Protocols",
abstract = "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 multiparty protocol description toolchain, 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.",
author = "Fangyi Zhou and Francisco Ferreira and Raymond Hu and Rumyana Neykova and Nobuko Yoshida",
note = "Accepted papers list: https://2020.splashcon.org/track/splash-2020-oopsla#event-overview",
year = "2020",
month = nov,
day = "20",
language = "English",
journal = "Proceedings of the ACM on Programming Languages",
issn = "2475-1421",
publisher = "ACM Digital Library",

}

RIS

TY - JOUR

T1 - Statically Verified Refinements for Multiparty Protocols

AU - Zhou, Fangyi

AU - Ferreira, Francisco

AU - Hu, Raymond

AU - Neykova, Rumyana

AU - Yoshida, Nobuko

N1 - Accepted papers list: https://2020.splashcon.org/track/splash-2020-oopsla#event-overview

PY - 2020/11/20

Y1 - 2020/11/20

N2 - 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 multiparty protocol description toolchain, 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.

AB - 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 multiparty protocol description toolchain, 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.

M3 - Article

JO - Proceedings of the ACM on Programming Languages

JF - Proceedings of the ACM on Programming Languages

SN - 2475-1421

ER -