Reactive Systems

Presented on July 2, 2018
Presenter: Michael

Preview

Michael will present topics on dealing with reactive systems, including (synchronous) dataflow languages and reactive programming, as discussed in “Advances in Dataflow Programming Languages” by Johnston et al., “The Synchronous Languages 12 Years Later” by Benveniste et al., and “A Survey on Reactive Programming” by Bainomugisha et al. These are semi-long papers, so I would skim them to get the main gists; I plan on summarizing the main features of these languages and programming approaches.

Summary

We discussed dataflow languages (from 70’s and 80’s), synchronous languages (from 90’s and early aughts), and reactive programming languages (from mid aughts until now), comparing their approaches to dealing with reactive systems. From a high-level, it seems that dataflow langauges were originally designed for dealing with novel dataflow architectures whose primary purpose was to exploit parallelism; the languages resembled declaring how circuits would be constructed. Later work on synchronous and synchronous dataflow languages made the clock a first-class value, allowing temporal operators to be used in defining new clocks and restricting when certain parts of the program run; they were also bounded to allow use in real-time systems. (Functional) reactive programming is similar to synchronous dataflow, but with fewer real-time constraints, dealing with the “event” and “behavior” abstraction.

Attachments

Slides