Publication
API Generation for Multiparty Session Types, Revisited and Revised Using Scala 3
| dc.contributor.author | Cledou, Guillermina | |
| dc.contributor.author | Edixhoven, Luc | |
| dc.contributor.author | Jongmans, Sung Shik | |
| dc.contributor.author | Proenca, José | |
| dc.date.accessioned | 2022-06-22T12:55:27Z | |
| dc.date.available | 2022-06-22T12:55:27Z | |
| dc.date.issued | 2022-06-06 | |
| dc.description.abstract | Construction and analysis of distributed systems is difficult. Multiparty session types (MPST) constitute a method to make it easier. The idea is to use type checking to statically prove deadlock freedom and protocol compliance of communicating processes. In practice, the premier approach to apply the MPST method in combination with mainstream programming languages has been based on API generation. In this paper (pearl), we revisit and revise this approach. Regarding our "revisitation", using Scala 3, we present the existing API generation approach, which is based on deterministic finite automata (DFA), in terms of both the existing states-as-classes encoding of DFAs as APIs, and a new states-as-type-parameters encoding; the latter leverages match types in Scala 3. Regarding our "revision", also using Scala 3, we present a new API generation approach that is based on sets of pomsets instead of DFAs; it crucially leverages match types, too. Our fresh perspective allows us to avoid two forms of combinatorial explosion resulting from implementing concurrent subprotocols in the DFA-based approach. We implement our approach in a new API generation tool. | pt_PT |
| dc.description.sponsorship | Funding G. Cledou and J. Proença: European Regional Development Fund (ERDF), Operational Programme for Competitiveness and Internationalisation (COMPETE 2020): POCI-01-0145-FEDER029946 (DaVinci). S. Jongmans: Netherlands Organisation of Scientific Research: 016.Veni.192.103. J. Proença: Fundação para a Ciência e a Tecnologia (FCT), within the CISTER Research Unit: UIDP/UIDB/04234/2020. ERDF and FCT, Portugal 2020 Partnership Agreement, Norte Portugal Regional Operational Programme (NORTE 2020): NORTE-01-0145-FEDER-028550 (REASSURE). ECSEL Joint Undertaking (JU): grant agreement No 876852 (VALU3S). | pt_PT |
| dc.description.version | info:eu-repo/semantics/publishedVersion | pt_PT |
| dc.identifier.uri | http://hdl.handle.net/10400.22/20633 | |
| dc.language.iso | eng | pt_PT |
| dc.relation | POCI-01-0145-FEDER029946 | pt_PT |
| dc.relation | UIDP/UIDB/04234/2020 | pt_PT |
| dc.relation | NORTE-01-0145-FEDER-028550 | pt_PT |
| dc.relation | Verification and Validation of Automated Systems' Safety and Security | |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc/4.0/ | pt_PT |
| dc.subject | Concurrency | pt_PT |
| dc.subject | Pomsets (partially ordered multisets) | pt_PT |
| dc.subject | Match types | pt_PT |
| dc.subject | Scala 3 | pt_PT |
| dc.title | API Generation for Multiparty Session Types, Revisited and Revised Using Scala 3 | pt_PT |
| dc.title.alternative | 220505 | pt_PT |
| dc.type | journal article | |
| dspace.entity.type | Publication | |
| oaire.awardTitle | Verification and Validation of Automated Systems' Safety and Security | |
| oaire.awardURI | info:eu-repo/grantAgreement/EC/H2020/876852/EU | |
| oaire.citation.title | 36th European Conference on Object-Oriented Programming (ECOOP 2022) | pt_PT |
| oaire.fundingStream | H2020 | |
| person.familyName | Proenca | |
| person.givenName | Jose | |
| person.identifier.ciencia-id | 2412-FE81-2767 | |
| person.identifier.orcid | 0000-0003-0971-8919 | |
| person.identifier.rid | K-4256-2016 | |
| person.identifier.scopus-author-id | 24067286500 | |
| project.funder.identifier | http://doi.org/10.13039/501100008530 | |
| project.funder.name | European Commission | |
| rcaap.rights | openAccess | pt_PT |
| rcaap.type | article | pt_PT |
| relation.isAuthorOfPublication | a9b67049-85ec-485a-a937-334ba113f087 | |
| relation.isAuthorOfPublication.latestForDiscovery | a9b67049-85ec-485a-a937-334ba113f087 | |
| relation.isProjectOfPublication | 1b3082bd-64c8-41d8-9f32-bb7f4b0d7bde | |
| relation.isProjectOfPublication.latestForDiscovery | 1b3082bd-64c8-41d8-9f32-bb7f4b0d7bde |
