Graph theoretic foundations of program slicing and integration

This paper generalizes program slicing algorithms originally defined over representations of programsto operate over directed graphs. Doing so provides a uniform framework to model Weiser’s and Ottenstein& Ottenstein’s approaches to program slicing as abstract mathematical operations transparent of anyconcerns of a program’s structure or its semantics. This transparency helps us in a) deriving calculationalstyle proofs of algebraic properties of slices, b) making more general assertions about these properties thanthose previously established, and c) generalizing Weiser’s slicing criterion to allow union of statements.The two program integration algorithms due to Reps and Horwitz, Prins, & Reps use programslicing as an elementary operation and are generalized to integrate directed graphs. These algorithmscan therefore be used to integrate versions of any artifact that may be represented as graphs, for instanceversions of specification and design of software systems.

[1]  Yoichi Muraoka,et al.  On the Number of Operations Simultaneously Executable in Fortran-Like Programs and Their Resulting Speedup , 1972, IEEE Transactions on Computers.

[2]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[3]  David Binkley Multi-procedure program integration , 1992 .

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

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

[6]  Claude Berge,et al.  Hypergraphs - combinatorics of finite sets , 1989, North-Holland mathematical library.

[7]  Wuu Yang,et al.  A new algorithm for semantics-based program integration , 1990 .

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

[9]  David Gries,et al.  Teaching calculation and discrimination: a more effective curriculum , 1991, CACM.

[10]  Linda M. Ott,et al.  The relationship between slices and module cohesion , 1989, ICSE '89.

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

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

[13]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

[14]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

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

[16]  Thomas W. Reps,et al.  Algebraic Properties of Program Integration , 1990, Sci. Comput. Program..

[17]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[18]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

[19]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

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

[21]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.