Bayesian program synthesis

[1] This approach stands in contrast to routine practice in probabilistic programming where human developers manually write new probabilistic programs.

This strategy allows automatic synthesis of new programs via probabilistic inference and is achieved by the composition of modular component programs.

The modularity in BPS allows inference to work on and test smaller probabilistic programs before being integrated into a larger model.

The goal in such fields is to find the best program that satisfies some constraint.

Additionally, Bayesian program synthesis can be contrasted to the work on Bayesian program learning, where probabilistic program components are hand-written, pre-trained on data, and then hand assembled in order to recognize handwritten characters.