Probabilistic programming language

From Wikipedia, the free encyclopedia
Jump to: navigation, search

A probabilistic programming language (PPL) is a programming language specially designed to describe and infer with probabilistic models.

PPLs often extend from a basic language. The inventors' choices of underlying basic language depend on the similarity of their models to the basic language's ontology, as well as commercial considerations and personal preference. For instance, Dimple[1] and Chimple[2] are based on Java, Infer.NET is based on .NET framework,[3] while PRISM extends from Prolog.[4] However, some PPLs such as WinBUGS and Stan (software) define a self-contained language for their users to use, which is not obviously derived from a predecessor language.[5][6]

Currently there are several PPLs in active development, some of them have advanced to the beta stage. However because PRMs are new, up to year 2010 there have been no well-known software projects utilizing those languages.

Probabilistic relational programming language[edit]

A probabilistic relational programming language (PRPL) is a PPL specially designed to describe and infer with probabilistic relational models (PRMs).

A PRM is usually developed with a set of algorithms for reducing, inference about and discovery of concerned distributions, which are embedded into the corresponding PRPL.

List of probabilistic programming languages[edit]

Name Extends from
IBAL[7] OCaml
PRISM[4] B-Prolog
Infer.NET[3] .NET Framework
dimple [1] MATLAB, Java
chimple [2] MATLAB, Java
BLOG[8]  ?
PSQL[9] SQL
BUGS[5] n/a
FACTORIE[10] Scala
PMTK[11] MATLAB
Alchemy[12] C++
Dyna[13] Prolog
Figaro[14] Scala
Church[15] Scheme
ProbLog[16] Prolog
ProBT[17] C++, Python
Stan (software)[6] n/a

See also[edit]

Notes[edit]

External links[edit]