Information Processing Letters
Integrating non-intering versions of programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Fast interprocedual alias analysis
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)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Interprocedural modification side effect analysis with pointer aliasing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Optimally profiling and tracing programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Analyzing aliases of reference formal parameters
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Experimental Evaluation of Program Slicing for Fault Localization
Empirical Software Engineering
Precise dynamic slicing algorithms
Proceedings of the 25th International Conference on Software Engineering
Cost effective dynamic program slicing
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Efficient Forward Computation of Dynamic Slices Using Reduced Ordered Binary Decision Diagrams
Proceedings of the 26th International Conference on Software Engineering
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
Hypertext support for the information needs of software maintainers
Journal of Software Maintenance and Evolution: Research and Practice
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Cost and precision tradeoffs of dynamic data slicing algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program Slicing with Dynamic Points-To Sets
IEEE Transactions on Software Engineering
Lightweight program specialization via dynamic slicing
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Whole execution traces and their applications
ACM Transactions on Architecture and Code Optimization (TACO)
Dynamic path conditions in dependence graphs
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Dynamic inference of abstract types
Proceedings of the 2006 international symposium on Software testing and analysis
Techniques and applications of computation slicing
Distributed Computing
An empirical study of static program slice size
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the 2007 international symposium on Software testing and analysis
Solving Computation Slicing Using Predicate Detection
IEEE Transactions on Parallel and Distributed Systems
Grace: automated slicing for visual basic
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
Semantics-aware trace analysis
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Program dependence graph based slicing for Java
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Hi-index | 0.00 |
Program slicing is a program analysis technique that has been studied in the context of several different applications in the construction, optimization, maintenance, testing, and debugging of programs. Algorithms are available for constructing slices for a particular execution of a program (dynamic slices), as well as to approximate a subset of the behavior over all possible executions of a program (static slices). However, these algorithms have been studied only in the context of small abstract languages. Program slicing is bound to remain an academic exercise unless one can not only demonstrate the feasibility of building a slicer for nontrivial programs written in a real programming language, but also verify that a type of slice is sufficiently thin, on the average, for the application for which it is chosen. In this article, we present results from using SLICE, a dynamic program slicer for C programs, designed and implemented to experiment with several different kinds of program slices and to study them both qualitatively and quantitatively. Several application programs, ranging in size (i.e., number of lines of code) over two orders of magnitude, were sliced exhaustively to obtain average worst-case metrics for the size of program slices.