Proceedings of the 2002 ACM SIGPLAN workshop on Rule-based programming
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Global Analysis and Transformations in Preprocessed Languages
IEEE Transactions on Software Engineering
Architectural modifications to deployed software
Science of Computer Programming
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
Optimizing header file include directives
Journal of Software Maintenance and Evolution: Research and Practice
CScout: A refactoring browser for C
Science of Computer Programming
An analysis of the variability in forty preprocessor-based software product lines
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Hi-index | 0.00 |
It is well known that the extensive use of preprocessors can lead to serious maintenance problems. However, these tools are still heavily used by developers and maintainers to implement software variants. Without adequate tools, understanding complex preprocessor files is a really tedious task. Problems are difficult to formulate and seem very specific. This paper shows that considering preprocessors from an abstract point of view can lead to surprising results. The use of abstractions considerably increases problem comprehension and solutions can be derived directly from existing techniques like slicing, program specialization or interprocedural data flow analysis. The preprocessor of the C language (CPP), is taken as a case study, and the functionalities of Champollion/APP, a tool for preprocessor maintenance, are briefly described.