Choice Calculus

The choice calculus is a simple, formal language for representing variation. It supports research in areas that deal with variation in software, such as software product lines. Within this domain, it intends to fulfill a role similar to the lambda calculus in programming languages research, providing a minimal basis for communicating ideas and sharing results.

The core choice calculus is very small – just two constructs, choices and tree nodes – but it can be easily extended with new language features that support different ways of developing, maintaining, and analyzing variability. The core choice calculus is also generic, emphasizing that variation can often be treated orthogonally to other concerns, but it can be instantiated by different object languages and data types when they interact fundamentally with variablity.

The primary reference for the choice calculus is the original TOSEM paper authored by Martin Erwig and Eric Walkingshaw. I would also recommend seeing Eric’s website for additional publications on his extensive work on the choice calculus.

The choice calculus also has a website of its own: