TY - GEN
T1 - Embedded probabilistic programming
AU - Kiselyov, Oleg
AU - Shan, Chung Chieh
PY - 2009
Y1 - 2009
N2 - Two general techniques for implementing a domain-specific language (DSL) with less overhead are the finally-tagless embedding of object programs and the direct-style representation of side effects. We use these techniques to build a DSL for probabilistic programming, for expressing countable probabilistic models and performing exact inference and importance sampling on them. Our language is embedded as an ordinary OCaml library and represents probability distributions as ordinary OCaml programs. We use delimited continuations to reify probabilistic programs as lazy search trees, which inference algorithms may traverse without imposing any interpretive overhead on deterministic parts of a model. We thus take advantage of the existing OCaml implementation to achieve competitive performance and ease of use. Inference algorithms can easily be embedded in probabilistic programs themselves.
AB - Two general techniques for implementing a domain-specific language (DSL) with less overhead are the finally-tagless embedding of object programs and the direct-style representation of side effects. We use these techniques to build a DSL for probabilistic programming, for expressing countable probabilistic models and performing exact inference and importance sampling on them. Our language is embedded as an ordinary OCaml library and represents probability distributions as ordinary OCaml programs. We use delimited continuations to reify probabilistic programs as lazy search trees, which inference algorithms may traverse without imposing any interpretive overhead on deterministic parts of a model. We thus take advantage of the existing OCaml implementation to achieve competitive performance and ease of use. Inference algorithms can easily be embedded in probabilistic programs themselves.
UR - http://www.scopus.com/inward/record.url?scp=69049105479&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=69049105479&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-03034-5_17
DO - 10.1007/978-3-642-03034-5_17
M3 - Conference contribution
AN - SCOPUS:69049105479
SN - 3642030335
SN - 9783642030338
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 360
EP - 384
BT - Domain-Specific Languages - IFIP TC 2 Working Conference, DSL 2009, Proceedings
T2 - IFIP TC 2 Working Conference on Domain-Specific Languages, DSL 2009
Y2 - 15 July 2009 through 17 July 2009
ER -