Conference

Typechecking Java Protocols with [St]Mungo

Bibliographic Details
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