Safe Sessions of Channel Actions in Clojure: A Tour of the Discourje Project

3Citations
Citations of this article
1Readers
Mendeley users who have this article in their library.
Get full text

Abstract

To simplify shared-memory concurrent programming, in addition to low-level synchronisation primitives, several modern programming languages have started to offer core support for higher-level communication primitives as well, in the guise of message passing through channels. Yet, a growing body of evidence suggests that channel-based programming abstractions for shared memory also have their issues. The Discourje project aims to help programmers cope with message-passing concurrency bugs in Clojure programs, based on run-time verification and dynamic monitoring. The idea is that programmers write not only implementations, but also specifications (of sessions of channel actions). Discourje then offers a library to ensure that implementations run safely relative to specifications (= “bad” channel actions never happen). This paper gives a tour of the current state of Discourje, by example; it is intended to serve both as a general overview for readers who are unfamiliar with previous work on Discourje, and as an introduction to new features for readers who are familiar.

Cite

CITATION STYLE

APA

Hamers, R., & Jongmans, S. S. (2020). Safe Sessions of Channel Actions in Clojure: A Tour of the Discourje Project. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 12476 LNCS, pp. 489–508). Springer Science and Business Media Deutschland GmbH. https://doi.org/10.1007/978-3-030-61362-4_28

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free