Usability and Efficiency of Probabilistic Programming Languages

Probabilistic programming languages provide a concise and abstract way to specify probabilistic models, while hiding away the complicated underlying inference algorithm. However, these languages are often either not efficient enough to use in practice, or restrict the range of supported models and require understanding of how the compiled program is executed. Furthermore, probabilistic programs can be difficult to debug --- in many cases it is not immediately clear if a probabilistic model describes some data well, nor if the underlying inference algorithm can adequately approximate the distribution of interest.