Birch is an imperative, object-oriented, universal probabilistic programming language. It compiles to C++14 for Linux, macOS, and Windows 10, and is free and open source.
Probabilistic models are specified in Birch by writing a program to simulate the joint distribution. Inference methods are also written in Birch. Sequential Monte Carlo (SMC) is currently supported, with analytical optimizations—such as locally-optimal proposals and Rao–Blackwellization—applied automatically.