A multitude of different probabilistic programming languages exists today, allextending a traditional programming language with primitives to support modeling ofcomplex, structured probability distributions. Each of these languages employs its own prob-abilistic primitives, and comes with a particular syntax, semantics and inference procedure.This makes it hard to understand the underlying programming concepts and appreciate thedifferences between the different languages. To obtain a better understanding of probabilisticprogramming, we identify a number of core programming concepts underlying the primi-tives used by various probabilistic languages, discuss the execution mechanisms that theyrequire and use these to position and survey state-of-the-art probabilistic languages and theirimplementation. While doing so, we focus on probabilistic extensions oflogicprogramminglanguages such as Prolog, which have been considered for over 20 years.
Funding Agency:
Flemish Research Foundation (FWO-Vlaanderen)