Publication | Closed Access
Partial preprocessing C code for variability analysis
19
Citations
35
References
2011
Year
Unknown Venue
Software MaintenanceEngineeringCompiler TechnologySoftware EngineeringSoftware AnalysisFormal VerificationUncertainty QuantificationManaging VariabilityDynamic CompilationCompiler SupportComputer EngineeringC PreprocessorComputer ScienceOptimizing CompilerStatic Program AnalysisType CorrectnessSoftware DesignC CodeProgram AnalysisSoftware TestingFormal MethodsCode FragmentsSystem Software
The C preprocessor is commonly used to implement variability. Given a feature selection, code fragments can be excluded from compilation with #ifdef and similar directives. However, the token-based nature of the C preprocessor makes variability implementation difficult and error-prone. Additionally, variability mechanisms are intertwined with macro definitions, macro expansion, and file inclusion. To determine whether a code fragment is compiled, the entire file must be preprocessed. We present a partial preprocessor that preprocesses file inclusion and macro expansion, but retains variability information for further analysis. We describe the mechanisms of the partial preprocessor, provide a full implementation, and present some initial experimental results. The partial preprocessor is part of a larger endeavor in the TypeChef project to check variability implementations (syntactic correctness, type correctness) in C projects such as the Linux kernel.
| Year | Citations | |
|---|---|---|
Page 1
Page 1