  This paper introduces Whittemore, a language for causal programming. Causal
programming is based on the theory of structural causal models and consists of
two primary operations: identification, which finds formulas that compute
causal queries, and estimation, which applies formulas to transform probability
distributions to other probability distribution. Causal programming provides
abstractions to declare models, queries, and distributions with syntax similar
to standard mathematical notation, and conducts rigorous causal inference,
without requiring detailed knowledge of the underlying algorithms. Examples of
causal inference with real data are provided, along with discussion of the
implementation and possibilities for future extension.
