Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
Selecting tests and identifying test coverage requirements for modified software
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
A specification driven slicing process for identifying reusable functions
Journal of Software Maintenance: Research and Practice
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
A Model for Change Propagation Based on Graph Rewriting
ICSM '97 Proceedings of the International Conference on Software Maintenance
A Slicing-Based Approach to Extracting Reusable Software Architectures
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Folding: An Approach to Enable Program Understanding of Preprocessed Languages
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Columbus - Reverse Engineering Tool and Schema for C++
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
A Large-Scale Empirical Study of Forward and Backward Static Slice Size and Context Sensitivity
ICSM '03 Proceedings of the International Conference on Software Maintenance
Columbus Schema for C/C++ Preprocessing
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Program Slicing with Dynamic Points-To Sets
IEEE Transactions on Software Engineering
Locating Dependence Clusters and Dependence Pollution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Program refactoring in the presence of preprocessor directives
Program refactoring in the presence of preprocessor directives
Combining Preprocessor Slicing with C/C++ Language Slicing
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
IEEE Transactions on Software Engineering
Analyzing the discipline of preprocessor annotations in 30 million lines of C code
Proceedings of the tenth international conference on Aspect-oriented software development
Hi-index | 0.01 |
Of the very few practical implementations of program slicing algorithms, the majority deal with C/C++ programs. Yet, preprocessor-related issues have been marginally addressed by these slicers, despite the fact that ignoring (or only partially handling) these constructs may lead to serious inaccuracies in the slicing results and hence in the program analysis task being performed. Recently, an accurate slicing method for preprocessor-related constructs has been proposed, which-when combined with existing C/C++ language slicers-can provide more complete slices and hence a more successful analysis of programs written in one of these languages. In this paper, we present our approach which combines the two slicing methods and, via practical experiments, describe its benefits in terms of the completeness of the resulting slices.