Information-flow and data-flow analysis of while-programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
A linear algorithm for finding dominators in flow graphs and related problems
STOC '85 Proceedings of the seventeenth annual ACM symposium on Theory of computing
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The relationship between slices and module cohesion
ICSE '89 Proceedings of the 11th international conference on Software engineering
The semantics of program dependence
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
A rewriting semantics for program dependence graphs
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using program slicing in software maintenance
Using program slicing in software maintenance
Dynamic slicing of computer programs
Journal of Systems and Software
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Efficient construction of program dependence graphs
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
Static slicing in the presence of goto statements
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Algorithm for Structuring Flowgraphs
Journal of the ACM (JACM)
A fast algorithm for finding dominators in a flowgraph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Certification of programs for secure information flow
Communications of the ACM
Immediate predominators in a directed graph [H]
Communications of the ACM
Incremental Regression Testing
ICSM '93 Proceedings of the Conference on Software Maintenance
Slicing Programs with Arbitrary Control-flow
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
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
Evaluating variations on program slicing for debugging (data-flow, ada)
Evaluating variations on program slicing for debugging (data-flow, ada)
Static slicing in the presence of goto statements
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Transaction chopping: algorithms and performance studies
ACM Transactions on Database Systems (TODS)
Hybrid slicing: an approach for refining static slices using dynamic information
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Precise interprocedural chopping
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Beyond traditional program slicing
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Slicing class hierarchies in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Computation of Dynamic Program Slices for Unstructured Programs
IEEE Transactions on Software Engineering
Flow insensitive C++ pointers and polymorphism analysis and its application to slicing
ICSE '97 Proceedings of the 19th international conference on Software engineering
Hybrid slicing: integrating dynamic information with static analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Reuse-driven interprocedural slicing
Proceedings of the 20th international conference on Software engineering
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
Analysis and Testing of Programs with Exception Handling Constructs
IEEE Transactions on Software Engineering
Generic control flow reconstruction from assembly code
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Better Slicing of Programs with Jumps and Switches
FASE '02 Proceedings of the 5th International Conference on Fundamental Approaches to Software Engineering
Journal of Systems and Software
Syntax-Directed Amorphous Slicing
Automated Software Engineering
Granularity-Driven Dynamic Predicate Slicing Algorithms for Message Passing Systems
Automated Software Engineering
Interprocedural slicing using dependence graphs
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Using Dynamic Information in the Interprocedural Static Slicing of Binary Executables
Software Quality Control
Efficiently monitoring data-flow test coverage
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Improving slice accuracy by compression of data and control flow paths
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Hi-index | 0.00 |
Program slices have potential uses in many software engineering applications. Traditional slicing algorithms, however, do not work correctly on programs that contain explicit jump statements. Two similar algorithms were proposed recently to alleviate this problem. Both require the flowgraph and the program dependence graph of the program to be modified. In this paper, we propose an alternative algorithm that leaves these graphs intact and uses a separate graph to store the additional required information. We also show that this algorithm permits an extremely efficient, conservative adaptation for use with programs that contain only “structured” jump statements.