TY - GEN
T1 - Design and implementation of probabilistic programming language anglican
AU - Tolpin, David
AU - Van De Meent, Jan Willem
AU - Yang, Hongseok
AU - Wood, Frank
N1 - Publisher Copyright:
© 2016 ACM.
PY - 2016/8/31
Y1 - 2016/8/31
N2 - Anglican is a probabilistic programming system designed to interoperate with Clojure and other JVM languages. We introduce the programming language Anglican, outline our design choices, and discuss in depth the implementation of the Anglican language and runtime, including macro-based compilation, extended CPS-based evaluation model, and functional representations for probabilistic paradigms, such as a distribution, a random process, and an inference algorithm. We show that a probabilistic functional language can be implemented efficiently and integrated tightly with a conventional functional language with only moderate computational overhead. We also demonstrate how advanced probabilistic modelling concepts are mapped naturally to the functional foundation.
AB - Anglican is a probabilistic programming system designed to interoperate with Clojure and other JVM languages. We introduce the programming language Anglican, outline our design choices, and discuss in depth the implementation of the Anglican language and runtime, including macro-based compilation, extended CPS-based evaluation model, and functional representations for probabilistic paradigms, such as a distribution, a random process, and an inference algorithm. We show that a probabilistic functional language can be implemented efficiently and integrated tightly with a conventional functional language with only moderate computational overhead. We also demonstrate how advanced probabilistic modelling concepts are mapped naturally to the functional foundation.
UR - http://www.scopus.com/inward/record.url?scp=85019087856&partnerID=8YFLogxK
U2 - 10.1145/3064899.3064910
DO - 10.1145/3064899.3064910
M3 - Conference contribution
AN - SCOPUS:85019087856
T3 - ACM International Conference Proceeding Series
BT - Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages, IFL 2016
PB - Association for Computing Machinery
T2 - 28th Symposium on the Implementation and Application of Functional Programming Languages, IFL 2016
Y2 - 31 August 2016 through 2 September 2016
ER -