A variability-aware module system

Christian Kästner, Klaus Ostermann, Sebastian Erdweg
2012 Proceedings of the ACM international conference on Object oriented programming systems languages and applications - OOPSLA '12  
Module systems enable a divide and conquer strategy to software development. To implement compile-time variability in software product lines, modules can be composed in different combinations. However, this way variability dictates a dominant decomposition. Instead, we introduce a variability-aware module system that supports compile-time variability inside a module and its interface. This way, each module can be considered a product line that can be type checked in isolation. Variability can
more » ... osscut multiple modules. The module system breaks with the antimodular tradition of a global variability model in product-line development and provides a path toward software ecosystems and product lines of product lines developed in an open fashion. We discuss the design and implementation of such a module system on a core calculus and provide an implementation for C, which we use to type check the open source product line Busybox with 811 compile-time options.
doi:10.1145/2384616.2384673 dblp:conf/oopsla/KastnerOE12 fatcat:wpamymvpnfgvjbb6soc5c5krvq