Affiliation:
1. Philipps University Marburg, Marburg, Germany
2. University of Leipzig, Leipzig, Germany
Abstract
In many projects, lexical preprocessors are used to manage different variants of the project (using conditional compilation) and to define compile-time code transformations (using macros). Unfortunately, while being a simple way to implement variability, conditional compilation and lexical macros hinder automatic analysis, even though such analysis is urgently needed to combat variability-induced complexity. To analyze code with its variability, we need to parse it without preprocessing it. However, current parsing solutions use unsound heuristics, support only a subset of the language, or suffer from exponential explosion. As part of the TypeChef project, we contribute a novel variability-aware parser that can parse almost all unpreprocessed code without heuristics in practicable time. Beyond the obvious task of detecting syntax errors, our parser paves the road for further analysis, such as variability-aware type checking. We implement variability-aware parsers for Java and GNU C and demonstrate practicability by parsing the product line MobileMedia and the entire X86 architecture of the Linux kernel with 6065 variable features.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
48 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. How Easy is SAT-Based Analysis of a Feature Model?;Proceedings of the 18th International Working Conference on Variability Modelling of Software-Intensive Systems;2024-02-07
2. Transforming Numerical Feature Models into Propositional Formulas and the Universal Variability Language;Journal of Systems and Software;2023-10
3. Comparing the intensity of variability changes in software product line evolution;Journal of Systems and Software;2023-09
4. VariantInc;Proceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A;2023-08-28
5. Applying declarative analysis to industrial automotive software product line models;Empirical Software Engineering;2023-02-04