Bayesian networks are one of the most important formalisms in contemporary machine learning. Given the structure of a network there are a number of well established inference algorithms, but the algorithms are quite involved to implement and applications are typically very performance sensitive. Hence the programmer faces a dilemma: quickly implement a solution in a high level language and suffer extended run time or grub around in C or Fortran for weeks but achieve good performance. This is a perfect application area for a DSL to neatly solve this dilemma, and this is exactly what AutoBayes does. Specify a high level description of the network and it generates high performance C++ code to solve it.

If you find this interesting you will also be interested in the links between probability theory and monads. Eric Kidd has had a great series of blog posts on this theme, and sigfpe has also posted on this theme. Those crazy academics have also been getting in on the action!