World Library  
Flag as Inappropriate
Email this Article

Probabilistic programming language

Article Id: WHEBN0030431128
Reproduction Date:

Title: Probabilistic programming language  
Author: World Heritage Encyclopedia
Language: English
Subject: Inductive programming, Stan (software), Functional logic programming, Non-structured programming, Structured programming
Collection: Probabilistic Models, Probabilistic Software
Publisher: World Heritage Encyclopedia

Probabilistic programming language

A probabilistic programming language (PPL) is a [1] Probabilistic programming represents an attempt to "[unify] general purpose programming with probabilistic modeling."[2]

Probabilistic reasoning is a foundational technology of machine learning. It is used by companies such as Google, and Microsoft. Probabilistic reasoning has been used for predicting stock prices, recommending movies, diagnosing computers, detecting cyber intrusions and image detection.[3]

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[4] and Chimple[5] are based on Java, Infer.NET is based on .NET framework,[6] while PRISM extends from Prolog.[7] However, some PPLs such as WinBUGS and Stan offer a self-contained language, with no obvious origin in another language.[8][9]

Several PPLs are in active development, including some in beta test.


  • Relational 1
  • Probabilistic programming 2
  • Applications 3
  • List of probabilistic programming languages 4
  • See also 5
  • Notes 6
  • External links 7


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.

Probabilistic programming

Probabilistic programming creates systems that help make decisions in the face of uncertainty. Probabilistic reasoning combines knowledge of a situation with the laws of probability. Until recently, probabilistic reasoning systems have been limited in scope, and have not successfully addressed real world situations. Probabilistic programming is a new approach that makes probabilistic reasoning systems easier to build and more widely applicable.[10]


In 2015, a 50-line PPL computer vision program was used to generate 3D models of human faces based on 2D images of those faces. The approach used inverse graphics as the basis of its inferencing.[3] The implemention PPL language (and host language Julia language), made at MIT and made possible "in 50 lines of code what used to take thousands [whereas their experiments used their] probabilistic programming language they call Picture, which is an extension of Julia language, another language developed at MIT".[11][12] A paper on the Picture language, shown at the 2015 Computer Vision and Pattern Recognition conference, was awarded "Best Paper Honorable Mention".[13]

List of probabilistic programming languages

Name Extends from Host language
Venture[14] Scheme C++
Probabilistic-C[15] C C
Anglican[16] Scheme Clojure
IBAL[17] OCaml
PRISM[7] B-Prolog
Infer.NET[6] .NET Framework .NET Framework
dimple[4] MATLAB, Java
chimple[5] MATLAB, Java
BLOG[18] Java
FACTORIE[20] Scala
Alchemy[22] C++
Dyna[23] Prolog
Figaro[24] Scala
Church[25] Scheme Various: JavaScript, Scheme
ProbLog[26] Prolog
ProBT[27] C++, Python
Stan (software)[9] R C++
Hakaru[28] Haskell Haskell
BAli-Phy (software)[29] Haskell C++
ProbCog[30] Java, Python
Tuffy[31] Java
PyMC[32] Python Python
Lea[33] Python Python
Picture[3] Julia Julia

See also


  1. ^
  2. ^
  3. ^ a b c
  4. ^ a b
  5. ^ a b
  6. ^ a b
  7. ^ a b PRISM Home Page
  8. ^ a b
  9. ^ a b
  10. ^ Pfeffer, Avrom (2014), Practical Probabilistic Programming, Manning Publications. p.28. ISBN 978-1 6172-9233-0
  11. ^
  12. ^
  13. ^
  14. ^
  15. ^
  16. ^
  17. ^ IBAL Home Page
  18. ^
  19. ^
  20. ^
  21. ^
  22. ^
  23. ^ Dyna Home Page
  24. ^
  25. ^
  26. ^ ProbLog Home Page
  27. ^
  28. ^
  29. ^
  30. ^
  31. ^
  32. ^
  33. ^

External links

  • List of Probabilistic Model Mini Language Toolkits
  • Probabilistic programming wiki
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.