Reactive Async: Expressive Deterministic Concurrency
Concurrent programming is infamous for its difficulty. An important source of difficulty is non-determinism, stemming from unpredictable interleavings of concurrent activities. Futures and promises are widely-used abstractions that help designing deterministic concurrent programs, although this property cannot be guaranteed statically in mainstream programming languages. Deterministic-by-construction concurrent programming models avoid this issue, but they typically restrict expressiveness in important ways.
This paper introduces a concurrent programming model, Reactive Async, which decouples concurrent computations using so-called cells, shared locations which generalize futures as well as recent deterministic abstractions such as LVars. Compared to previously
proposed programming models Reactive Async provides (a) a fallback mechanism for the case where no computation ever computes the value of a given cell, and (b) explicit and optimized handling of cyclic dependencies. We present a complete implementation of the Reactive Async programming model as a library in Scala. Finally, the paper reports on a case study applying Reactive Async to static analyses of JVM bytecode based on the Opal framework.
Mon 31 OctDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:10
|Practical Aggregate Programming in Scala|
Roberto Casadei University of Bologna, ItalyMedia Attached
|DynaML: A Scala machine learning environment|
Mandar Chandorkar Centrum Wiskunde & Informatica
|Scala-Gopher: CSP-style programming techniques with idiomatic Scala.|
Ruslan Shevchenko vertamediaMedia Attached
|Reactive Async: Expressive Deterministic Concurrency|
Philipp Haller KTH Royal Institute of Technology, Simon Geries KTH Royal Institute of Technology, Sweden, Michael Eichberg TU Darmstadt, Germany, Guido Salvaneschi TU Darmstadt, GermanyDOI Pre-print Media Attached