Embedded probabilistic programming

Oleg Kiselyov, Chung Chieh Shan

Research output: Chapter in Book/Report/Conference proceedingConference contribution

49 Citations (Scopus)


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.

Original languageEnglish
Title of host publicationDomain-Specific Languages - IFIP TC 2 Working Conference, DSL 2009, Proceedings
Number of pages25
Publication statusPublished - 2009
Externally publishedYes
EventIFIP TC 2 Working Conference on Domain-Specific Languages, DSL 2009 - Oxford, United Kingdom
Duration: 2009 Jul 152009 Jul 17

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume5658 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


OtherIFIP TC 2 Working Conference on Domain-Specific Languages, DSL 2009
Country/TerritoryUnited Kingdom

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)


Dive into the research topics of 'Embedded probabilistic programming'. Together they form a unique fingerprint.

Cite this