|
Abstract : |
The notion of a program slice, originally introduced by Mark Weiser, is useful in program debugging, automatic parallelization, program integration, and software maintenance. A slice of a program is taken with respect to a program point p and a variable x; the slice consists of all statements of the program that might affect the value of x at point p. Prior work on interprocedural slicing, where a slice crosses the boundaries of procedure calls, has largely ignored the practical problem of aliasing (two variables are aliases if they refer to the same memory location). This papers presents an algorithm for interprocedural slicing in the presence of parameter aliases: two formal parameters that refer to the same memory location. The algorithm is parameterized by a set of parameter aliasing information. Better information yields smaller slices. CR Categories and Subject Descriptors: D.3.3 [Programming Languages]: Language Constructs- control structures, procedures,, |