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.



There are no comments yet.


page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.