Skip to content
0:00 / 0:00

#propagators#lvars#crdt

Propagators by Edward Kmett #FnConf19

ConfEngine

14K subscribers • 16 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Edward Kmett

Advanced. Deep dive for people who know the field.

4.1K views6 years ago2 recommendations

Programming languagesComputer scienceFunctional programmingComputation and complexityConcurrency and parallelism

Edward Kmett explores the theory of propagators and lattice variables to ensure consistent and terminating iterative algorithms.

There are a lot of algorithms that revolve around iterating a form of information propagation until it attains a deterministic fixed point. CRDTs, Datalog, SAT solving, functional reactive programming, and constraint programming all fit into this mold. One framework for these sorts of algorithms is the notion of a 'propagator' due to Sussman and Radul, but until now little rigor has applied to know how such algorithms terminate with consistent results. Another framework is Lindsey Kuper's work on the notion of 'lattice variables' (LVars), which addresses termination, parallelism and eventual consistency well, but not iteration. By blending these frameworks, I'll build up a series of sufficient conditions for propagators to terminate with consistent results and proceed to show how we can use this common framework to steal insights and quirks from each individual domain to try to optimize the rest. More details: confengine.com/functional-conf-2019/proposal/12713 Conference Link: functionalconf.com

Why it's here

2 people recommend this

What people say. Recommended for its technical depth on information propagation networks and underlying consistency theory.

u/chombierin r/ProgrammingLanguages • Recommends

On “Are ideas presented here implemented anywhere?”

Thanks! Here's another one I liked (by Edward Kmett) [video for anyone interested

u/Roboguy2in r/ProgrammingLanguages • Recommends

On “Ripple Update”

This seems like a nice language to build propagator networks. The reason your language makes me think of this is because of how information, well, propagates through a propagator network. When a cell updates, this propagates to the cells that connect to it in the network. There's a nice talk introducing propagators here. Also, here's a more technical talk that covers more about the underlying theory and some more advanced topics. This also includes some live-coding in Haskell towards the end. Let me give an example to give the general idea. These ideas will be described more in those talks, but it will give kind of a summary of some of the fundamentals. Take the equation z = x + y. N…