程序切片有两个含义:
1、一般地,把只与某个输出有关的语句和谓词构成的程序称为源程序的一种静态切片。
2、计算程序切片的过程。
程序切片是一种用于分解程序的程序分析技术,它的原理和方法是由M.Weiser于1979年在他的博士论文中首次建立。
计算程序切片的方法主要有两种:根据数据流方程计算和根据依赖图关系计算。
可分为静态、有条件和动态切片,各种切片都有各自的优势与劣势,对软件逆向工程方面有一定的帮助。
实例:
int i;
int sum =0;
int product =1;
for(i =0; i < N;++i){
sum = sum + i;
product = product *i;
}
write(sum);
write(product);
在以write(sum) 为准则进行后向切片时,将得到如下结果:
int i;
int sum =0;
for(i =0; i < N;++i){
sum = sum + i;
}
write(sum);
本文介绍了程序切片技术的基本概念及应用,包括其定义、计算方法及不同类型的切片方式。程序切片由M. Weiser于1979年提出,主要应用于软件逆向工程领域,有助于理解复杂程序。
5755

被折叠的 条评论
为什么被折叠?



