Skip to content

rmascarenhas/foppl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FOPPL: A First-Order Probabilistic Programming Language

This is an implementation of FOPPL, an S-expression based probabilistic programming language described in [1]. See the resources/examples directory for a list of FOPPL programs.

Features

  • Compiles FOPPL programs to a graphical model representation.
  • Able to perform automatic differentiation of simple, first-order functions.
  • Inference algorithms: Metropolis within Gibbs and HMC.
  • Also supports inference of higher-order models using an evaluation-based interpreter.
  • Supports the PPX protocol. This means this can be used as an inference engine for models written in a language without probabilistic constructs.

Dependencies

  • Clojure 1.8+
  • Anglican 1.0+

Usage

$ lein run [foppl-src]

[1] J. W. van de Meent, B. Paige, H. Yang, and F. Wood, “Introduction to Probabilistic Programming,” Foundations and Trends in Machine Learning, pp. in review, 2018. arxiv.org

About

First-Order Probabilistic Programming Language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published