Reactive Imperative Programming with Dataflow Constraints
Camil Demetrescu, Irene Finocchi, Andrea Ribichini

TL;DR
This paper introduces a seamless method to integrate dataflow constraints into imperative programming languages, enabling reactive memory objects and automatic constraint re-evaluation without syntactic extensions.
Contribution
It presents a novel framework that combines imperative and dataflow paradigms smoothly, allowing constraints on reactive objects to be enforced transparently within standard host languages.
Findings
Efficient implementation in C/C++ demonstrated.
Comparable or better performance than specialized change propagation algorithms.
Supports various reactive scenarios like incremental computation and data structure repair.
Abstract
Dataflow languages provide natural support for specifying constraints between objects in dynamic applications, where programs need to react efficiently to changes of their environment. Researchers have long investigated how to take advantage of dataflow constraints by embedding them into procedural languages. Previous mixed imperative/dataflow systems, however, require syntactic extensions or libraries of ad hoc data types for binding the imperative program to the dataflow solver. In this paper we propose a novel approach that smoothly combines the two paradigms without placing undue burden on the programmer. In our framework, programmers can define ordinary commands of the host imperative language that enforce constraints between objects stored in "reactive" memory locations. Reactive objects can be of any legal type in the host language, including primitive data types, pointers,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
