Conference
Typechecking Java Protocols with [St]Mungo
| Title: | Typechecking Java Protocols with [St]Mungo |
|---|---|
| Authors: | A. Laura Voinea, Ornela Dardha, Simon J. Gay |
| Publisher Information: | Zenodo |
| Publication Year: | 2020 |
| Collection: | Zenodo |
| Subject Terms: | multiparty session types, typestate, [St]Mungo, HTTP protocol |
| Description: | This is a tutorial paper on [St]Mungo, a toolchain based on multiparty session types and their connection to typestates for safe distributed programming in Java language. The StMungo (Scribble-to-Mungo) tool is a bridge between multiparty session types and typestates. StMungo translates a communication protocol, namely a sequence of sends and receives of messages, given as a multiparty session type in the Scribble language, into a typestate specification and a Java API skeleton. The generated API skeleton is then further extended with the necessary logic, and finally typechecked by Mungo. The Mungo tool extends Java with (optional) typestate specifications. A typestate is a state machine specifying a Java object protocol, namely the permitted sequence of method calls of that object. Mungo statically typechecks that method calls follow the object’s protocol, as defined by its typestate specification. Finally, if no errors are reported, the code is compiled with javac and run as standard Java code. In this tutorial paper we give an overview of the stages of the [St]Mungo toolchain, starting from Scribble communication protocols, translating to Java classes with typestates, and finally to typechecking method calls with Mungo. We illustrate the [St]Mungo toolchain via a real-world case study, the HTTP client-server request-response protocol over TCP. During the tutorial session, we will apply [St]Mungo to a range of examples having increasing complexity, with HTTP being one of them. |
| Document Type: | conference object |
| Language: | English |
| Relation: | https://zenodo.org/communities/eu/; https://zenodo.org/records/3956233; oai:zenodo.org:3956233 |
| DOI: | 10.1007/978-3-030-50086-3_12 |
| Availability: | https://doi.org/10.1007/978-3-030-50086-3_12 https://zenodo.org/records/3956233 |
| Rights: | Creative Commons Attribution 4.0 International ; cc-by-4.0 ; https://creativecommons.org/licenses/by/4.0/legalcode |
| Accession Number: | edsbas.3A784DFB |
| Database: | BASE |
| FullText | Text: Availability: 0 CustomLinks: – Url: https://doi.org/10.1007/978-3-030-50086-3_12# Name: EDS - BASE (ns324271) Category: fullText Text: View record from BASE |
|---|---|
| Header | DbId: edsbas DbLabel: BASE An: edsbas.3A784DFB RelevancyScore: 909 AccessLevel: 3 PubType: Conference PubTypeId: conference PreciseRelevancyScore: 908.994323730469 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Typechecking Java Protocols with [St]Mungo – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22A%2E+Laura+Voinea%22">A. Laura Voinea</searchLink><br /><searchLink fieldCode="AR" term="%22Ornela+Dardha%22">Ornela Dardha</searchLink><br /><searchLink fieldCode="AR" term="%22Simon+J%2E+Gay%22">Simon J. Gay</searchLink> – Name: Publisher Label: Publisher Information Group: PubInfo Data: Zenodo – Name: DatePubCY Label: Publication Year Group: Date Data: 2020 – Name: Subset Label: Collection Group: HoldingsInfo Data: Zenodo – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22multiparty+session+types%22">multiparty session types</searchLink><br /><searchLink fieldCode="DE" term="%22typestate%22">typestate</searchLink><br /><searchLink fieldCode="DE" term="%22[St]Mungo%22">[St]Mungo</searchLink><br /><searchLink fieldCode="DE" term="%22HTTP+protocol%22">HTTP protocol</searchLink> – Name: Abstract Label: Description Group: Ab Data: This is a tutorial paper on [St]Mungo, a toolchain based on multiparty session types and their connection to typestates for safe distributed programming in Java language. The StMungo (Scribble-to-Mungo) tool is a bridge between multiparty session types and typestates. StMungo translates a communication protocol, namely a sequence of sends and receives of messages, given as a multiparty session type in the Scribble language, into a typestate specification and a Java API skeleton. The generated API skeleton is then further extended with the necessary logic, and finally typechecked by Mungo. The Mungo tool extends Java with (optional) typestate specifications. A typestate is a state machine specifying a Java object protocol, namely the permitted sequence of method calls of that object. Mungo statically typechecks that method calls follow the object’s protocol, as defined by its typestate specification. Finally, if no errors are reported, the code is compiled with javac and run as standard Java code. In this tutorial paper we give an overview of the stages of the [St]Mungo toolchain, starting from Scribble communication protocols, translating to Java classes with typestates, and finally to typechecking method calls with Mungo. We illustrate the [St]Mungo toolchain via a real-world case study, the HTTP client-server request-response protocol over TCP. During the tutorial session, we will apply [St]Mungo to a range of examples having increasing complexity, with HTTP being one of them. – Name: TypeDocument Label: Document Type Group: TypDoc Data: conference object – Name: Language Label: Language Group: Lang Data: English – Name: NoteTitleSource Label: Relation Group: SrcInfo Data: https://zenodo.org/communities/eu/; https://zenodo.org/records/3956233; oai:zenodo.org:3956233 – Name: DOI Label: DOI Group: ID Data: 10.1007/978-3-030-50086-3_12 – Name: URL Label: Availability Group: URL Data: https://doi.org/10.1007/978-3-030-50086-3_12<br />https://zenodo.org/records/3956233 – Name: Copyright Label: Rights Group: Cpyrght Data: Creative Commons Attribution 4.0 International ; cc-by-4.0 ; https://creativecommons.org/licenses/by/4.0/legalcode – Name: AN Label: Accession Number Group: ID Data: edsbas.3A784DFB |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.3A784DFB |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1007/978-3-030-50086-3_12 Languages: – Text: English Subjects: – SubjectFull: multiparty session types Type: general – SubjectFull: typestate Type: general – SubjectFull: [St]Mungo Type: general – SubjectFull: HTTP protocol Type: general Titles: – TitleFull: Typechecking Java Protocols with [St]Mungo Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: A. Laura Voinea – PersonEntity: Name: NameFull: Ornela Dardha – PersonEntity: Name: NameFull: Simon J. Gay IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 01 Type: published Y: 2020 Identifiers: – Type: issn-locals Value: edsbas – Type: issn-locals Value: edsbas.oa |
| ResultId | 1 |