# Probabilistic programming

## Link

- An Introduction to Probabilistic Programming (2018)
- pdatastructs - Simple probabilistic data structures.
- Gen - General-purpose probabilistic programming system with programmable inference.
- MIT Probabilistic Computing Project (GitHub)
- End-User Probabilistic Programming paper by Microsoft Research
- monad-bayes - Library for probabilistic programming in Haskell.
- Funsor - Functional tensors for probabilistic programming.
- Pyro - Deep universal probabilistic programming with Python and PyTorch. (Web)
- TensorFlow Probability - Library for probabilistic reasoning and statistical analysis in TensorFlow.
- Soss: Probabilistic Programming with Julia (2020)
- NumPyro - Probabilistic programming with NumPy powered by JAX for autograd and JIT compilation to GPU/TPU/CPU.
- Edward2 - Simple probabilistic programming language.
- MCX - Express & compile probabilistic programs for performant inference on CPU & GPU. Powered by JAX. (Intro)
- Soss - Julia library for probabilistic programming via source rewriting.
- Orbit - Python package for time series modeling and inference using Bayesian sampling methods for model estimation. (Docs)
- PyMC3 - Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) and variational inference (VI) algorithms.
- PyMC3 Resources
- PyMC3 Examples - Examples of PyMC3 models, including a library of Jupyter notebooks.
- Ranked Programming - Ranked Programming Extension for Racket. Ranked programming is similar to probabilistic programming, except that the underlying uncertainty formalism is replaced with ranking theory.
- Foundations of Probabilistic Programming (2020)
- Semantics of probabilistic programs (Tweet)
- Probabilistic Programming for Inverse Problems in Physical Sciences (2021)
- Probabilistic Programming for Programming Languages People (Code)
- SPPL - Sum-Product Probabilistic Language.
- Gen - Open-source stack for generative modeling and probabilistic inference. (Code)
- CLASP - Centre for linguistic theory and studies in probability, University of Gothenburg. (GitHub)
- Daphne - Probabilistic programming compiler.
- FOPPL - First-Order Probabilistic Programming Language.
- ProbLog: Probabilistic Programming
- ProbLog - Probabilistic logic programs are logic programs in which some of the facts are annotated with probabilities. (Code)
- DeepProbLog - Extension of ProbLog that integrates Probabilistic Logic Programming with deep learning by introducing the neural predicate.
- WebPPL - Probabilistic programming for the web. (Web)
- Storm - Modern Probabilistic Model Checker. (Web)
- Bean Machine - Probabilistic programming language for inference over statistical models written in the Python language using a declarative syntax.
- Probabilistic programming with continuations (2020)
- Probabilistic Programming Packages
- prbnmcn-dagger - Probabilistic OCaml programming library.
- Denoising diffusion probabilistic models - Series of tutorial notebooks on denoising diffusion probabilistic models in PyTorch.
- Probabilistic Machine Learning Book (2022) (Tweet)
- Miking DPPL - Framework for developing probabilistic programming languages (PPLs) using Miking.
- ZhuSuan - Probabilistic programming library for Bayesian deep learning, generative models, based on Tensorflow.
- Prism - Probabilistic Symbolic Model Checker. (HN)
- Conditional Diffusion Probabilistic Model for Speech Enhancement - Leverages recent advances in diffusion probabilistic models, and proposes a novel speech enhancement algorithm.
- MarkovJunior - Probabilistic PL based on pattern matching and constraint propagation, 148 examples.
- PPL Bench - Evaluation Framework for Probabilistic Programming Languages. (Docs)
- [On Fast Sampling of Diffusion Probabilistic Models (2021)(https://arxiv.org/abs/2106.00132) (Code)
- pgmpy - Python library for working with Probabilistic Graphical Models.