The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Crafting a compiler
Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Rigi-A system for programming-in-the-large
ICSE '88 Proceedings of the 10th international conference on Software engineering
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
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
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
IEEE Transactions on Software Engineering
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Program integration for languages with procedure calls
ACM Transactions on Software Engineering and Methodology (TOSEM)
Effectively exploiting parallelism in data flow analysis
The Journal of Supercomputing
Partial online cycle elimination in inclusion constraint graphs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Cache-conscious structure definition
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Efficient points-to analysis for whole-program analysis
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Off-line variable substitution for scaling points-to analysis
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Programmers use slices when debugging
Communications of the ACM
Ultra-fast aliasing analysis using CLA: a million lines of C code in a second
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Computing ripple effect for software maintenance
Journal of Software Maintenance: Research and Practice
Improving program slicing with dynamic points-to data
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
IEEE Transactions on Software Engineering
Software Salvaging Based on Conditions
ICSM '94 Proceedings of the International Conference on Software Maintenance
ICSE '81 Proceedings of the 5th international conference on Software engineering
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
Using Dependence Graphs as a Support to Document Programs
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Qualifying reusable functions using symbolic execution
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
An Incremental Semi-Automatic Method for Component Recovery
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Node Coarsening Calculi for Program Slicing
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Identifying reusable functions using specification driven program slicing: a case study
ICSM '95 Proceedings of the International Conference on Software Maintenance
An Empirical Study of Amorphous Slicing as a Program Comprehension Support Tool
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Slicing Aspect-Oriented Software
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Chopping: A Generalization of Slicing
Chopping: A Generalization of Slicing
Evaluating Context-Sensitive Slicing and Chopping
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
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
Building Executable Union Slices using Conditioned Slicing
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
Slice-Based Cohesion Metrics and Software Intervention
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Locating Dependence Clusters and Dependence Pollution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Forward slices are smaller than backward slices
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
Efficient path conditions in dependence graphs for software safety analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Precise slicing of concurrent programs
Automated Software Engineering
Change impact graphs: Determining the impact of prior codechanges
Information and Software Technology
Dependence clusters in source code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Assessing the impact of global variables on program dependence and dependence clusters
Journal of Systems and Software
Impact analysis for event-based components and systems
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Advanced chopping of sequential and concurrent programs
Software Quality Control
Practical change impact analysis based on static program slicing for industrial software systems
Proceedings of the 33rd International Conference on Software Engineering
Experiences with PDG-Based IFC
ESSoS'10 Proceedings of the Second international conference on Engineering Secure Software and Systems
State-based model slicing: A survey
ACM Computing Surveys (CSUR)
Coherent clusters in source code
Journal of Systems and Software
Hi-index | 0.00 |
This article presents results from a study of techniques that improve the performance of graph-based interprocedural slicing of the System Dependence Graph (SDG). This is useful in “massive slicing” where slices are required for many or all of the possible set of slicing criteria. Several different techniques are considered, including forming strongly connected components, topological sorting, and removing transitive edges. Data collected from a test bed of just over 1,000,000 lines of code are presented. This data illustrates the impact on computation time of the techniques. Together, the best combination produces a 71% reduction in run-time (and a 64% reduction in memory usage). The complete set of techniques also illustrates the point at which faster computation is not viable due to prohibitive preprocessing costs.