The world is full of uncertainty. But most software handles computation deterministically. Probabilistic Programming is a bridge between general-purpose programming languages and the statistical methods of machine learning and artificial intelligence.
In this introduction, we cover some basics of probability theory, provide a conceptual framework for understanding probabilistic programming systems, compare probabilistic inference with logical inference and its use in making decisions, and survey some of the current efforts to bring probabilistic programming to industrial settings.