Transparent Synchronous Dataflow

10/21/2019
by   Steven W. T. Cheung, et al.
0

There are several functional approaches to dataflow programming, produced by varying the level of abstraction of the language. The level of abstraction has immediate impact on the trade-offs between effectiveness (how easy it is to write correct programs) and efficiency (time and space costs of execution) that the language makes. In this paper we present a language for dataflow programming which operates at higher level of abstraction, by making events and the switching infrastructure transparent. To solve the problem of potentially infinite computation in cyclic dataflow networks we adopt a synchronous mode of propagation, leading to a novel language design which we call transparent synchronous dataflow (TSD). This language is semantically defined using a graph-rewriting abstract machine, which gives a cost-accurate execution model. Using it, we prove three main results: safety of execution, implementation-independent efficiency, and deterministic execution for concurrent update. We also provide a semi-naive concrete implementation as an OCaml PPX extension which we use to compare it with similar languages via benchmarks.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset