Chapter 5 Probabilistic programming