Discourje: Runtime Verification of Communication Protocols in Clojure

Ruben Hamers, Sung-Shik Jongmans

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

Abstract

This paper presents Discourje: a runtime verification framework for communication protocols in Clojure. Discourje guarantees safety of protocol implementations relative to specifications, based on an expressive new version of multiparty session types. The framework has a formal foundation and is itself implemented in Clojure to offer a seamless specification–implementation experience. Benchmarks show Discourje’s overhead can be less than 5% for real/existing concurrent programs.

Original languageEnglish
Title of host publicationTools and Algorithms for the Construction and Analysis of Systems
Subtitle of host publication26th International Conference, TACAS 2020, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Dublin, Ireland, April 25–30, 2020, Proceedings, Part I
EditorsArmin Biere, David Parker
Place of PublicationCham
PublisherSpringer Open
Chapter15
Pages266-284
Number of pages19
ISBN (Electronic)978-3-030-45190-5
ISBN (Print)978-3-030-45189-9
DOIs
Publication statusPublished - 2020
Event(Cancelled) 26th International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Dublin, Ireland
Duration: 25 Apr 202030 Apr 2020
Conference number: 26
https://etaps.org/2020/tacas
https://link.springer.com/content/pdf/10.1007%2F978-3-030-45237-7.pdf

Publication series

SeriesLecture Notes in Computer Science (LNCS) series
Volume12078
ISSN0302-9743
SeriesTheoretical Computer Science and General Issues (LNCS subseries)
Volume12078

Conference

Conference(Cancelled) 26th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Abbreviated titleTACAS 2020
Country/TerritoryIreland
CityDublin
Period25/04/2030/04/20
Internet address

Fingerprint

Dive into the research topics of 'Discourje: Runtime Verification of Communication Protocols in Clojure'. Together they form a unique fingerprint.

Cite this