Preprocessor conditional removal by simple partial evaluation - Baxter, I.D.; Mehlich, M. (Proceedings Eighth Working Conference on Reverse Engineering, 2001)
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. The paper sketches the problem and the required transforms, and discusses a case study involving over a million lines of source code.