The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Information Processing Letters
The semantics of program dependence
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)
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Program integration for languages with procedure calls
ACM Transactions on Software Engineering and Methodology (TOSEM)
Transfinite reductions in orthogonal term rewriting systems
Information and Computation
Semantics-preserving procedure extraction
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Slicing Software for Model Construction
Higher-Order and Symbolic Computation
Equivalence of conservative, free, linear program schemas is decidable
Theoretical Computer Science
Program Slicing via FermaT Transformations
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
A Compositional Semantics of Combining Forms for Gramma Programs
Proceedings of the International Conference on Formal Methods in Programming and Their Applications
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
ICSM '03 Proceedings of the International Conference on Software Maintenance
Non-Standard Semantics for Program Slicing
Higher-Order and Symbolic Computation
Journal of Systems and Software
IEEE Transactions on Software Engineering
Formalizing Executable Dynamic and Forward Slicing
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Minimal Slicing and the Relationships Between Forms of Slicing
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
A formalisation of the relationship between forms of program slicing
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Theoretical foundations of dynamic program slicing
Theoretical Computer Science
Static Program Slicing Algorithms are Minimal for Free Liberal Program Schemas
The Computer Journal
Slicing as a program transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Equivalence of linear, free, liberal, structured program schemas is decidable in polynomial time
Theoretical Computer Science
A new foundation for control dependence and slicing for modern program structures
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Selective strictness and parametricity in structural operational semantics, inequationally
Theoretical Computer Science
A new foundation for control-dependence and slicing for modern program structures
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
IEEE Transactions on Software Engineering
A unifying theory of control dependence and its application to arbitrary program structures
Theoretical Computer Science
Program slicing enhances a verification technique combining static and dynamic analysis
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Heap slicing using type systems
ICCSA'12 Proceedings of the 12th international conference on Computational Science and Its Applications - Volume Part III
Hi-index | 5.23 |
We define a program semantics that is preserved by dependence-based slicing algorithms. It is a natural extension, to non-terminating programs, of the semantics introduced by Weiser (which only considered terminating ones) and, as such, is an accurate characterisation of the semantic relationship between a program and the slice produced by these algorithms. Unlike other approaches, apart from Weiser's original one, it is based on strict standard semantics which models the 'normal' execution of programs on a von Neumann machine and, thus, has the advantage of being intuitive. This is essential since one of the main applications of slicing is program comprehension. Although our semantics handles non-termination, it is defined wholly in terms of finite trajectories, without having to resort to complex, counter-intuitive, non-standard models of computation. As well as being simpler, unlike other approaches to this problem, our semantics is substitutive. Substitutivity is an important property because it greatly enhances the ability to reason about correctness of meaning-preserving program transformations such as slicing.