我必须在java中构建一个程序切片器,以根据切片标准切片源代码。我看到为此目的有很少的图书馆。尽管如此,我想亲自尝试一下。我已阅读了关于该主题的一些出版物,其中包括使用依赖关系图来计算程序中的数据和控制依赖关系。然后可以使用切片算法结合切片准则来生成Java程序的切片。有没有人做过这种类型的事情?如果是这样,你能否指出我在正确的方向开始呢?我搜索和搜索,无法确定从哪里开始,哪些API存在(如果有的话)。有没有人在Java中构建过程切片器?
一个例子是:
public class Foo {
public void fooBar() {
int x = 10;
int y = 12;
String s = "";
for(int j=0; j<10; j++) {
s += x;
x++;
y += 3;
}
System.out.println("y value " + y);
}
}
如果切片的标准(13,y)被choosen,其中图13是在上面的代码中的最后一行,那么结果将是
public class Foo {
public void fooBar() {
int y = 12;
for(int j=0; j<10; j++) {
y += 3;
}
}
}
切片标准返回所有可能影响第13行变量'y'的语句。
你有没有参考现有的商业或自由程序切片机?我不知道你想要软件做什么。也许一些源代码手动切片的例子? – Marcelo 2011-06-04 18:28:58
什么是Java程序的“切片”? – 2011-06-04 18:29:23
我看着梧桐(http://indus.projects.cis.ksu.edu)。 @Jon,在这里看到程序切片(http://en.wikipedia.org/wiki/Program_slicing) – Joeblackdev 2011-06-04 18:42:25