我刚被介绍了"程序切片"这个术语。这种功能的需求很明显,但它是否存在于任何地方呢?
这个术语现在已经有20年了,我看到有很多出版物、研究论文等等。但实际的工具在哪里呢?人们真正在实践中应用这个概念吗,还是只是学术上研究?
有什么研究成果,可以针对哪些编程语言?
编辑:我想要的是关于程序切片特别面向并且维护一份工具/技术列表的出版物/组织等的参考资料,我会将其评为被接受的答案。
我刚被介绍了"程序切片"这个术语。这种功能的需求很明显,但它是否存在于任何地方呢?
这个术语现在已经有20年了,我看到有很多出版物、研究论文等等。但实际的工具在哪里呢?人们真正在实践中应用这个概念吗,还是只是学术上研究?
有什么研究成果,可以针对哪些编程语言?
编辑:我想要的是关于程序切片特别面向并且维护一份工具/技术列表的出版物/组织等的参考资料,我会将其评为被接受的答案。
[编辑](针对OP修改后的问题)
我已经跟踪了文献很长一段时间。 我认为没有一个“程序切片”中心有您想要的列表。 大多数已构建的程序切片器都是某种类型的大学实验(意味着它们在生产中不起作用,不能用于实际目的)。 您可以通过使用术语“program slicing”在scholar.google.com上搜索来了解它们; 我猜你已经知道这一点。 我认为您已经拥有了“大佬”。
这项调查有些过时,但由杰出的研究人员完成:http://www.cse.buffalo.edu/LRG/CSE605/Papers/slicing-survey-tip.pdf。 这个更近期:http://dl.acm.org/citation.cfm?id=1050865。
CodeSurfer 是一款用于对C程序进行静态切片的商业工具。 我相信它们还处理C ++。 与其他工具不可用的重要优点是可以交互式地探索代码切片的UI。
Indus 是用于在Java上进行静态代码切片的大学研究工具。 我不确定这是否仍在积极开发中。
似乎有许多大学构建的“动态”Java程序切片工具。 据我所知,它们中没有一个处于积极开发或使用中。
我们公司提供DMS软件重新工程工具包,其中包含用于程序控制和数据流分析的通用机器,包括构建自定义静态代码切片器。 DMS已被用于构建大型C程序以及工业过程控制程序的片段。(我会提供链接,但是似乎SO人民讨厌我这样做)。