Summary: An Analysis of the Variability in Forty Preprocessor-Based
Software Product Lines
Jörg Liebig, Sven Apel,
and Christian Lengauer
University of Passau
Christian Kästner and Michael Schulze
University of Magdeburg
Over 30 years ago, the preprocessor cpp was developed to
extend the programming language C by lightweight metapro-
gramming capabilities. Despite its error-proneness and low
abstraction level, the preprocessor is still widely used in
present-day software projects to implement variable software.
However, not much is known about how cpp is employed
to implement variability. To address this issue, we have
analyzed forty open-source software projects written in C.
Specifically, we answer the following questions: How does