Oven: Safe and Live Communication Protocols in Scala, using Synthetic Behavioural Type Analysis

Francisco Ferreira, Sung Shik Jongmans

Research output: Chapter in Book/Report/Conference proceedingConference Article in proceedingAcademicpeer-review

Abstract

We present Oven: a toolset to assure safety and liveness of communication protocols among threads in concurrent programs in Scala. Oven is the first practical toolset that is built on top of new theoretical foundations of synthetic behavioural type analysis, recently developed by us to improve the expressiveness of existing work. We explain Oven's usage, summarise its design and implementation (main challenge: how to encode the new synthetic behavioural typing rules in Scala's existing type system), and discuss a preliminary evaluation of expressiveness (the results provide first evidence that Oven is an improvement over two state-of-the-art tools).

Original languageEnglish
Title of host publicationISSTA 2023
Subtitle of host publicationProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis
EditorsRene Just, Gordon Fraser
PublisherAssociation for Computing Machinery (ACM)
Pages1511-1514
Number of pages4
ISBN (Electronic)9798400702211
DOIs
Publication statusPublished - Jul 2023
Event32nd ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2023 - Seattle, United States
Duration: 17 Jul 202321 Jul 2023
https://conf.researchr.org/home/issta-2023

Publication series

SeriesISSTA: International Symposium on Software Testing and Analysis. Conference Proceedings

Symposium

Symposium32nd ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2023
Country/TerritoryUnited States
CitySeattle
Period17/07/2321/07/23
Internet address

Keywords

  • behavioural types
  • choreographies
  • multiparty session types

Fingerprint

Dive into the research topics of 'Oven: Safe and Live Communication Protocols in Scala, using Synthetic Behavioural Type Analysis'. Together they form a unique fingerprint.

Cite this