Reactive programming

Reactive programming is a programming paradigm inspired by the automatic propagation of changes made famous by spreadsheet software. Insofar as this requires maintaining a graph of data dependencies, reactive programming is related to dataflow programming. Some reactive programming languages support continuously time-varying values (“behaviors”) in addition to changes at discrete points in time (“events”).

Propagator networks

Propagator networks are an approach to reactive programming developed by Alexey Radul and Gerald Sussman. In Haskell community, Ed Kmett has worked to make propagators a fast and useful technology (GitHub , HN ), emphasizing the connection with Lindsey Kuper et al’s work on LVars and LVish.

  • Radul & Sussman, 2009: The art of the propagator (pdf, LtU )
    • Radul, 2009, PhD thesis: Propagation networks: A flexible and expressive substrate for computation (pdf)
  • Kuper & Newton, 2013: LVars: lattice-based data structures for deterministic parallelism (doi, pdf)
    • Kuper et al, 2014: Freeze after writing: quasi-deterministic parallel programming with LVars (doi, pdf)
    • Kuper & Newton, 2014: Joining forces: toward a unified account of LVars and convergent replicated data types (pdf)
    • Kuper et al, 2014: Taming the parallel effect zoo: extensible deterministic parallelism with LVish (doi, pdf)
    • Kuper, 2015, PhD thesis: Lattice-based data structures for deterministic parallel and distributed programming (pdf)