You are here

Variation Programming with the Choice Calculus

TitleVariation Programming with the Choice Calculus
Publication TypeConference Paper
Year of Publication2011
AuthorsErwig, M., and E. Walkingshaw
Conference NameGenerative and Transformational Techniques in Software Engineering IV, International Summer School, GTTSE 2011
Date Published07/2011
Conference LocationBraga, Portugal

The choice calculus provides a language for representing and transforming variation in software and other structured documents. Variability is captured in localized choices between alternatives. The space of all variations is organized by dimensions, which provide scoping and structure to choices. The variation space can be reduced through a process of selection, which eliminates a dimension and resolves all of its associated choices by replacing each with one of their alternatives. The choice calculus also allows the definition of arbitrary functions for the flexible construction and transformation of all kinds of variation structures. In this tutorial we will first present the motivation, general ideas, and principles that underlie the choice calculus. This is followed by a closer look at the semantics. We will then present practical applications based on several small example scenarios and consider the concepts of ”variation programming” and ”variation querying”. The practical applications involve work with a Haskell library that supports variation programming and experimentation with the choice calculus.