Data dependences, which relate statements that compute data values to statements that use those values, are useful for automating a variety of program-comprehension-related activities, such as reverse engineering, impact analysis, and debugging. Unfortunat
1.2.3.4.5.6.7.8.9.10.11.
inti;main(){
int*p;
intj,sum1,sum2;sum1=0;sum2=0;readi,j;
while(i<10){
if(j<0){
p=&sum1;}
else{
p=&sum2;}
*p=add(j,*p);readj;}
sum1=add(j,sum1);printsum1,sum2;}
12.13.14.15.16.17.18.19.20.21.
intadd(intval,intsum){
int*q,k;readk;
if(sum>100){
i=9;}
sum=sum+i;if(i<k){
q=&val;}
else{
q=&k;}
sum=sum+*q;i=i+1;returnsum;}
Figure3:ProgramSum.
slicecanalsobecomputedintheforwarddirection:aforwardsliceincludesthosestatementsinPthatarein uenced
bythevaluesofthevariablesinVats.
2A