<div class="csl-bib-body">
<div class="csl-entry">Böck, M., & Cito, J. (2026). Static Factorisation of Probabilistic Programs with User-Labelled Sample Statements and While Loops. <i>Proceedings of the ACM on Programming Languages</i>, <i>10</i>(OOPSLA1), 653–680. https://doi.org/10.1145/3798223</div>
</div>
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/228700
-
dc.description.abstract
It is commonly known that any Bayesian network can be implemented as a probabilistic program, but the reverse direction is not so clear. In this work, we address the open question to what extent a probabilistic program with user-labelled sample statements and while loops - features found in languages like Gen, Turing, and Pyro - can be represented graphically. To this end, we extend existing operational semantics to support these language features. By translating a program to its control-flow graph, we define a sound static analysis that approximates the dependency structure of the random variables in the program. As a result, we obtain a static factorisation of the implicitly defined program density, which is equivalent to the known Bayesian network factorisation for programs without loops and constant labels, but constitutes a novel graphical representation for programs that define an unbounded number of random variables via loops or dynamic labels. We further develop a sound program slicing technique to leverage this structure to statically enable three well-known optimisations for the considered program class: we reduce the variance of gradient estimates in variational inference and we speed up both single-site Metropolis Hastings and sequential Monte Carlo. These optimisations are proven correct and empirically shown to match or outperform existing techniques.
en
dc.language.iso
en
-
dc.publisher
Association for Computing Machinery (ACM)
-
dc.relation.ispartof
Proceedings of the ACM on Programming Languages
-
dc.subject
Bayesian networks
en
dc.subject
factorisation
en
dc.subject
operational semantics
en
dc.subject
Probabilistic programming
en
dc.subject
static program analysis
en
dc.title
Static Factorisation of Probabilistic Programs with User-Labelled Sample Statements and While Loops