Probabilistic programming language and its incremental evaluation

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

8 Citations (Scopus)


This system description paper introduces the probabilistic programming language Hakaru10, for expressing, and performing inference on (general) graphical models. The language supports discrete and continuous distributions, mixture distributions and conditioning. Hakaru10 is a DSL embedded in Haskell and supports Monte-Carlo Markov Chain (MCMC) inference. Hakaru10 is designed to address two main challenges of probabilistic programming: performance and correctness. It implements the incremental Metropolis-Hastings method, avoiding all redundant computations. In the presence of conditional branches, efficiently maintaining dependencies and correctly computing the acceptance ratio are non-trivial problems, solved in Hakaru10. The implementation is unique in being explicitly designed to satisfy the common equational laws of probabilistic programs. Hakaru10 is typed; specifically, its type system statically prevents meaningless conditioning, enforcing that the values to condition upon must indeed come from outside the model.

Original languageEnglish
Title of host publicationProgramming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings
EditorsAtsushi Igarashi
PublisherSpringer Verlag
Number of pages20
ISBN (Print)9783319479576
Publication statusPublished - 2016
Event14th Asian Symposium on Programming Languages and Systems, APLAS 2016 - Hanoi, Viet Nam
Duration: 2016 Nov 212016 Nov 23

Publication series

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


Other14th Asian Symposium on Programming Languages and Systems, APLAS 2016
Country/TerritoryViet Nam

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)


Dive into the research topics of 'Probabilistic programming language and its incremental evaluation'. Together they form a unique fingerprint.

Cite this