Slicing Programs with Arbitrary Control-flow

Program slicing is a program transformation that is useful in program debugging, program maintenance, and other applications that involve understanding program behavior. Given a program point p and a set of variables V, the goal of slicing is to create a projection of the program (by eliminating some statements), such that the projection and the original program compute the same values for all variables in V at point p.

[1]  Susan Horwitz,et al.  Identifying the semantic and textual differences between two versions of a program , 1990, PLDI '90.

[2]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[3]  Thomas W. Reps,et al.  On the adequacy of program dependence graphs for representing programs , 1988, POPL '88.

[4]  Brenda S. Baker,et al.  An Algorithm for Structuring Flowgraphs , 1977, J. ACM.

[5]  M. W. Du,et al.  Finding program slices for recursive procedures , 1988, Proceedings COMPSAC 88: The Twelfth Annual International Computer Software & Applications Conference.

[6]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[7]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[8]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[9]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[10]  Bogdan Korel,et al.  PELAS - Program Error-Locating Assistant System , 1988, IEEE Trans. Software Eng..

[11]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[12]  Wuu Yang,et al.  The Semantics of Program Slicing and Program Integration , 1989, TAPSOFT, Vol.2.

[13]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.