DMS®: Program Transformations for Practical Scalable Software Evolution
Proceedings of the 26th International Conference on Software Engineering
Architectural modifications to deployed software
Science of Computer Programming
High-fidelity C/C++ code transformation
Science of Computer Programming
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
FAME-DBMS: tailor-made data management solutions for embedded systems
SETMDM '08 Proceedings of the 2008 EDBT workshop on Software engineering for tailor-made data management
Aspect mining in the presence of the C preprocessor
Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolution
Can we refactor conditional compilation into aspects?
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Optimizing header file include directives
Journal of Software Maintenance and Evolution: Research and Practice
A model of refactoring physically and virtually separated features
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Tailor-made data management for embedded systems: A case study on Berkeley DB
Data & Knowledge Engineering
High-Fidelity C/C++ Code Transformation
Electronic Notes in Theoretical Computer Science (ENTCS)
CScout: A refactoring browser for C
Science of Computer Programming
Efficient extraction and analysis of preprocessor-based variability
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
TypeChef: toward type checking #ifdef variability in C
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Partial preprocessing C code for variability analysis
Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems
Analyzing the discipline of preprocessor annotations in 30 million lines of C code
Proceedings of the tenth international conference on Aspect-oriented software development
Proceedings of the sixth conference on Computer systems
Variability-aware parsing in the presence of lexical macros and conditional compilation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
SuperC: parsing all of C by taming the preprocessor
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
Does the discipline of preprocessor annotations matter?: a controlled experiment
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Investigating preprocessor-based syntax errors
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
Preprocessors with conditionals are often used as software configuration management tools, with preprocessor variables naming configuration aspects. The preprocessor conditionals found in large systems often have complex enabling Boolean equations and nesting. Over long periods, some configuration aspects lose all utility. Removal of all traces of a configuration variable and code dependent on that aspect becomes a significant task if performed manually.An industrial-strength transformation system can remove such configuration aspects in a much shorter period of time, by symbolically simplifying away the configuration aspect. This paper sketches the problem, and the required transforms, and discusses a case study involving over a million lines of source code.