An introduction to probabilistic programming by Giuseppe Barbalinardo