We report about recent research on the foundations of software product-line engineering, originally published at the OOPSLA issue of the Proceedings of the ACM on Programming Languages (PACMPL) in 2024 Bi24. Our research addresses fundamental open problems in software engineering of configurable systems with programming language theory. Variability permeates software development to satisfy ever-changing requirements and mass-customization needs. A prime example is the Linux kernel, which employs the C preprocessor to specify a set of related but distinct kernel variants. To study, analyze, and verify variational software, several formal languages have been proposed. For example, the choice calculus has been successfully applied for type checking configurable software, while other formalisms have been used for variational model checking or change impact analysis. Yet, these languages have not been formally compared, hence, little is known about their relationships. Crucially, it is unclear to what extent one language subsumes another, how research results from one language can be applied to other languages, and which language is suitable for which purpose or domain. In our OOPSLA paper, we propose a formal framework to compare the expressive power of languages for static (i. e. compile-time) variability. After formalizing and unifying existing languages, we can formally compare these languages based on mutual compilers and a meta-theory on expressiveness. We find different levels of expressiveness, with the choice calculus being among the most expressive languages.
Bittner et al. (Thu,) studied this question.