Content deleted Content added
Citation bot (talk | contribs) Alter: template type. Add: isbn, doi, pages, date, series, s2cid, website, authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Anas1712 | Category:Wikipedia articles with style issues from October 2019 | #UCB_Category 15/146 |
Expanded and refined information about the PPL called BUGS including its implementations in WinBUGS and JAGS, and clarified its similarity to later PPLs like Stan. I'm in the middle of making changes, and still to add the references (still learning Wikipedia). |
||
Line 25:
== Probabilistic 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 (information science)|ontology]], as well as commercial considerations and personal preference. For instance, Dimple<ref name="DMPL"/> and Chimple<ref name="CHMPL"/> are based on [[Java (programming language)|Java]], [[Infer.NET]] is based on [[.NET Framework]],<ref name="INFET"/> while PRISM extends from [[Prolog]].<ref name="PRISM"/> However, some PPLs such as [[WinBUGS
The language for WInBUGS was implemented to perform Bayesian computation Using Gibbs Sampling (and related algorithms). Although implemented in a relatively old programming language (Pascal), this language permits Bayesian inference for a wide variety of statistical models using a flexible computational approach. The same BUGS language may be used to specify Bayesian models for inference via different computational choices ("samplers") and conventions or defaults, using a standalone package WinBUGS (or related R packages, rbugs and r2winbugs) and JAGS (Just Another Gibbs Sampler, another R package). More recently, other languages to support Bayesian model specification and inference allow different or more efficient choices for the underlying Bayesian computation, and are accessible from the R data analysis and programming environment, e.g.: [[Stan (software)|Stan]], NIMBLE and NUTS. The influence of the BUGS language is evident in these later languages, which even use the same syntax for some aspects of model specification.
Several PPLs are in active development, including some in beta test. The two most popular tools are Stan and [[PyMC]].<ref>{{Cite web|url=http://blog.fastforwardlabs.com/2017/01/30/the-algorithms-behind-probabilistic-programming.html|title=The Algorithms Behind Probabilistic Programming|access-date=2017-03-10}}</ref>▼
▲Several PPLs are in active development, including some in beta test.
=== Relational ===
Line 34 ⟶ 36:
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.{{Overly detailed|date=October 2019}}
{| class="wikitable sortable"
Line 70 ⟶ 72:
| [[Probabilistic SQL|PSQL]]<ref name="PSQL"/> || [[SQL]] ||
|-
| BUGS<ref name="BUGS"/> || ||Pascal
|-
| FACTORIE<ref name="FACTORIE"/> || [[Scala (programming language)|Scala]] ||Scala
Line 88 ⟶ 90:
| ProBT<ref name="ProBT"/> || C++, [[Python (programming language)|Python]] ||
|-
| [[Stan (software)|Stan]]<ref name="Stan"/> || BUGS|| C++
|-
| Hakaru<ref name="Hakaru"/> || [[Haskell (programming language)|Haskell]] || Haskell
|