Applications
Probabilistic reasoning has been used for a wide variety of tasks such as predicting stock prices, recommending movies, diagnosing computers, detecting cyber intrusions and image detection. However, until recently (partially due to limited computing power), probabilistic programming was limited in scope, and most inference algorithms had to be written manually for each task. Nevertheless, in 2015, a 50-line probabilisticProbabilistic programming languages
PPLs often extend from a basic language. The choice of underlying basic language depends on the similarity of the model to the basic language's ontology, as well as commercial considerations and personal preference. For instance, Dimple and Chimple are based on Java, Infer.NET is based onRelational
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
This list summarises the variety of PPLs that are currently available, and clarifies their origins.Difficulty
Reasoning about variables as probability distributions causes difficulties for novice programmers, but these difficulties can be addressed through use of Bayesian network visualisations and graphs of variable distributions embedded within the source code editor.See also
*Notes
{{Reflist, 30em, refs= {{cite book, url=https://dl.acm.org/citation.cfm?id=2627375, title=NOVA: A Functional Language for Data Parallelism, work=acm.org, series=Array'14, date=June 9, 2014, pages=8–13, doi=10.1145/2627373.2627375, isbn=9781450329378, s2cid=6748967 {{cite web, url=https://popl19.sigplan.org/event/lafi-2019-probabilistic-programming-with-cuppl, title=Probabilistic Programming with CuPPL, work=popl19.sigplan.org {{cite web, url=https://github.com/probcomp/bayeslite, title=BayesDB on SQLite. A Bayesian database table for querying the probable implications of data as easily as SQL databases query the data itself, work=GitHub, date=December 26, 2021 {{cite web, url=http://bayesloop.com/, title=bayesloop: Probabilistic programming framework that facilitates objective model selection for time-varying parameter models {{cite web, url=https://github.com/christophmark/bayesloop, title=GitHub -- bayesloop, website= GitHub, date=December 7, 2021 {{cite web, url=http://www.analytica.com, title=Analytica-- A Probabilistic Modeling Language, work=lumina.com {{cite web, url=http://probcomp.csail.mit.edu/venture/, title=Venture -- a general-purpose probabilistic programming platform, work=mit.edu, access-date=September 20, 2014, archive-url=https://web.archive.org/web/20160125130827/http://probcomp.csail.mit.edu/venture/, archive-date=January 25, 2016, url-status=dead {{cite web, url=https://github.com/probprog/anglican-infcomp, title=The Anglican Probabilistic Programming System, work=ox.ac.uk, date=January 6, 2021 {{cite web, url=http://www.robots.ox.ac.uk/~brooks/probabilistic-c/, title=Probabilistic C, work=ox.ac.uk, access-date=March 24, 2015, archive-url=https://web.archive.org/web/20160104201746/http://www.robots.ox.ac.uk/~brooks/probabilistic-c/, archive-date=January 4, 2016, url-status=dead {{cite web, url=http://www.eecs.harvard.edu/~avi/IBAL/, title=IBAL Home Page, url-status=dead, archive-url=https://web.archive.org/web/20101226131239/http://www.eecs.harvard.edu/~avi/IBAL/, archive-date=December 26, 2010, df=mdy-all {{cite web, url=http://rjida.meijo-u.ac.jp/prism/, title=PRISM: PRogramming In Statistical Modeling, website=rjida.meijo-u.ac.jp, access-date=July 8, 2015, archive-url=https://web.archive.org/web/20150301155729/http://rjida.meijo-u.ac.jp/prism/, archive-date=March 1, 2015, url-status=dead {{cite web, url=http://research.microsoft.com/en-us/um/cambridge/projects/infernet/, title=Infer.NET, publisher=Microsoft, work=microsoft.com {{cite web, url=https://github.com/analog-garage/dimple, title=Dimple Home Page, work=analog.com, date=July 2, 2021 {{cite web, url=https://github.com/analog-garage/chimple, title=Chimple Home Page, work=analog.com, date=April 16, 2021 {{cite web, url=http://people.csail.mit.edu/milch/blog/, title=Bayesian Logic (BLOG), work=mit.edu, url-status=dead, archive-url=https://web.archive.org/web/20110616214423/http://people.csail.mit.edu/milch/blog/, archive-date=June 16, 2011, df=mdy-all {{cite web, url=https://github.com/MatthiasNickles/diff-SAT/, title=diff-SAT (probabilistic SAT/ASP), website= GitHub, date=October 8, 2021 {{cite journal, title=PSQL: A query language for probabilistic relational data, doi=10.1016/S0169-023X(98)00015-9 , volume=28, journal=Data & Knowledge Engineering, pages=107–120, year = 1998, last1 = Dey, first1 = Debabrata, last2=Sarkar , first2=Sumit {{cite web, url=http://www.mrc-bsu.cam.ac.uk/bugs/, title=The BUGS Project - MRC Biostatistics Unit, work=cam.ac.uk, access-date=January 12, 2011, archive-url=https://web.archive.org/web/20140314080841/http://www.mrc-bsu.cam.ac.uk/bugs/, archive-date=March 14, 2014, url-status=dead {{cite web, url=http://code.google.com/p/factorie/, title=Factorie - Probabilistic programming with imperatively-defined factor graphs - Google Project Hosting, work=google.com {{cite web, url=http://code.google.com/p/pmtk3/, title=PMTK3 - probabilistic modeling toolkit for Matlab/Octave, version 3 - Google Project Hosting, work=google.com {{cite web, url=https://github.com/rmculpepper/gamble, title=gamble: Probabilistic Programming, first=Ryan, last=Culpepper, date=January 17, 2017, via=GitHub {{cite web, url=http://alchemy.cs.washington.edu/, title=Alchemy - Open Source AI, work=washington.edu {{cite web, url=http://www.dyna.org/, title=Dyna, website=www.dyna.org, access-date=January 12, 2011, archive-url=https://web.archive.org/web/20160117155947/http://dyna.org/, archive-date=January 17, 2016, url-status=dead {{cite web, url=http://www.cra.com/figaro, title=Charles River Analytics - Probabilistic Modeling Services, work=cra.com, date=February 9, 2017 {{cite web, url=http://projects.csail.mit.edu/church/wiki/Church, title=Church, work=mit.edu, access-date=April 8, 2013, archive-url=https://web.archive.org/web/20160114182510/http://projects.csail.mit.edu/church/wiki/Church, archive-date=January 14, 2016, url-status=dead {{cite web, url=http://dtai.cs.kuleuven.be/problog, title=ProbLog: Probabilistic Programming, website=dtai.cs.kuleuven.be {{cite web, url=http://www.probayes.com/fr/Bayesian-Programming-Book/downloads/, title=ProbaYes - Ensemble, nous valorisations vos données, author=ProbaYes, work=probayes.com, access-date=November 26, 2013, archive-url=https://web.archive.org/web/20160305000751/http://www.probayes.com/fr/Bayesian-Programming-Book/downloads/, archive-date=March 5, 2016, url-status=dead {{cite web, url=http://mc-stan.org/, archive-url=https://web.archive.org/web/20120903133321/http://mc-stan.org/, url-status=dead, archive-date=2012-09-03, title=Stan, work=mc-stan.org {{cite web, url=https://hakaru-dev.github.io/, title=Hakaru Home Page, work=hakaru-dev.github.io/ {{cite web, url=http://www.bali-phy.org/, title=BAli-Phy Home Page, work=bali-phy.org {{cite web, url=https://github.com/opcode81/ProbCog/wiki/Features, title=ProbCog, work=GitHub {{cite web, url=http://i.stanford.edu/hazy/tuffy/home, title=Tuffy: A Scalable Markov Logic Inference Engine, work=stanford.edu {{cite web, url=https://docs.pymc.io/en/v3/, title=PyMC, author=PyMC devs, work=pymc-devs.github.io {{cite web, url=https://bitbucket.org/piedenis/lea, title=Lea Home Page, work=bitbucket.org {{cite web, url=http://dippl.org/, title=WebPPL Home Page, work=github.com/probmods/webppl {{cite web, url=https://github.com/yebai/Turing.jl, title=The Turing language for probabilistic programming, website= GitHub, date=December 28, 2021 {{cite web, url=http://topps.diku.dk/torbenm/troll.msp, title=Troll dice roller and probability calculator {{cite web, url=https://github.com/zz5013/pwCompiler, title=PWhile Compiler, work=GitHub, date=May 25, 2020 {{cite web, url=https://github.com/bradleygramhansen/PyLFPPL, title=LF-PPL: A Low-Level First Order Probabilistic Programming Language for Non-Differentiable Models, work=ox.ac.uk, date=November 2, 2019 {{cite web, url=https://beanmachine.org, title=Bean Machine - A universal probabilistic programming language to enable fast and accurate Bayesian analysis, work=beanmachine.orgExternal links