I. Background A. Static Slicing 1. in brief 2. too large to help in debugging a. our slicing criteria i. it contains all statements (noslide) ii. *SLIDE* B. Execution History - *SLIDE* C. Dynamic slicing - in brief 1. All executed statements which effect the slicing criteria a. prompt for computation b. *SLIDE* dnamic slice 1. ways to arrive at the slice a. Dynamic Dependance Graph i. Several versions available ii. don't know much about this b. Union of execution history and static slice c. Method outlined below 2. Why dynamic slicing inappropriate a. for debugging b. for regression testing c. too small to help in debugging II. The Solution A. Relevant slice 1. What it is 2. prompt for computation 3. *SLIDE* relevant slice 4. -statement 7 is not contained in this slice because it was not executed, and the relevant slice is a subset of the E.H. -it can be included in another slice after modifying the prog. B. Proposed for regression testing C. This paper about debugging D. Does use dynamic slice 1. not DDG a. DDG is large 2. We get the dynamic slice by the algorithm to follow III. The Algorithm A. i d U 1. Chart explains each *SLIDE* 2. Fill in chart (or part of chart) B. Dynamic Slice 1. The dynamic slice = "the union of(( the dynamic slices of all variables used at i) union (the last definition of all variables used at i") 2. fill in table for dynamic slice C. Conditional Flow Edges & conditional dependance D. Potential Dependance 1, 2, 3 *SLIDE* E. Formulas *SLIDE* F. Algorithm *SLIDE* 1. Fill in table G. Problem with algorithm 1. Program 3 *SLIDE* 2. Explanation a. Suppose the loop iterates twice such that statement 12 is executed twice. There is a potential DU pair between statements 11 and 12 because of the predicate in statement 10. b. We must consiter the data dependancy of p10, intuitively, we can see that it is {3, 7, 10} but for the error in the algorithm. c. On the first iteration, the DataDep(p10) = {3,7}, but on the second iteration, it calculates to {10}, and the second iteration overwrites the first. d. we need to accumulate the old data dependancies along the way for the predicates. So we get second equation, which yields {3,7,10}