KIT | KIT-Bibliothek | Impressum | Datenschutz

A Variability-Aware Module System

Kästner, Christian; Ostermann, Klaus; Erdweg, Sebastian ORCID iD icon 1
1 Institut für Programmstrukturen und Datenorganisation (IPD), Karlsruher Institut für Technologie (KIT)

Abstract (englisch):

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. As an alternative, we introduce a variability-aware module system that supports compile-time variability inside a module and its interface. So, each module can be considered a product line that can be type checked in isolation. Variability can crosscut 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 as part of the TypeChef project. Our implementation supports variability inside modules from #ifdef preprocessor directives and variable linking at the composition level. With our implementation, we type check all configurations of all modules of the open source product line Busybox with 811 compile-time options, perform linker check of all configurations, and report found type and linker errors - without resorting to a brute-force strategy.


Zugehörige Institution(en) am KIT Institut für Programmstrukturen und Datenorganisation (IPD)
Publikationstyp Proceedingsbeitrag
Publikationsdatum 19.10.2012
Sprache Englisch
Identifikator ISBN: 978-1-4503-1561-6
KITopen-ID: 1000188536
Erschienen in Proceedings of the 12th Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA; Tuscon, AZ, USA, 19.-26.10.2012
Veranstaltung 12th ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2012), Tucson, AZ, USA, 19.10.2012 – 26.10.2012
Verlag Association for Computing Machinery (ACM)
Seiten S. 773–792
Schlagwörter #ifdef; Busybox; C; Composition; Conditional compilation; Linker; Module system; Preprocessor; Software product lines; Variability
Nachgewiesen in Scopus
KIT – Die Universität in der Helmholtz-Gemeinschaft
KITopen Landing Page