WG211/M15Ostermann
A Library for Probabilistic and Variability-Aware Programming by Klaus Ostermann
I will present a library for probabilistic and variability-aware programming, that is, a library to support programs that deal with variability either described by discrete probability distributions or by logical (propositional) formulas. The library's key abstraction is a pair of functions, "reflect" and "reify", that turn a variable program into an ordinary program and vice versa. I argue that a library like this will be useful to implement probabilistic and variability-aware algorithms, such as type checkers or evaluators for software product lines. The library is written in Racket and uses delimited continuations to reflect over the monadic effects of the variability monad. I will also talk about probabilistic and variability-aware data structures and the role of lazy evaluation.