HBC: Hierarchical Bayes Compiler. HBC is a toolkit for implementing hierarchical Bayesian models. HBC was created because I felt like I spend too much time writing boilerplate code for inference problems in Bayesian models. There are several goals of HBC: Allow a natural implementation of hierarchal models. Enable quick and dirty debugging of models for standard data types. Focus on large-dimension discrete models. More general that simple Gibbs sampling (eg., allowing for maximizations, EM and message passing). Allow for hierarchical models to be easily embedded in larger programs. Automatic Rao-Blackwellization (aka collapsing). Allow efficient execution via compilation to other languages (such as C, Java, Matlab, etc.). Support for non-parametric models. These goals distinguish HBC from other Bayesian modeling software, such as Bugs (or WinBugs). In particular, our primary goal is that models created in HBC can be used directly, rather than only as a first-pass test. Moreover, we aim for scalability with respect to data size. Finally, since the goal of HBC is to compile hierarchical models into standard programming languages (like C), these models can easily be used as part of a larger system. This last point is in the spirit of the dynamic programming language Dyna.