一种语义保持的C克隆代码无定型过程提取方法
A Semantics-Preserving Amorphous Procedure Extraction Method for C Clone Code作者机构:哈尔滨工业大学计算机科学与技术学院哈尔滨150001
出 版 物:《计算机研究与发展》 (Journal of Computer Research and Development)
年 卷 期:2013年第50卷第7期
页 面:1534-1541页
核心收录:
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:无定型过程提取 克隆代码 程序依赖图 抽象语法树 语义
摘 要:克隆代码又被称为重复代码,是一种代码坏味.针对传统的保持语法结构不变的过程提取方法提取克隆代码时存在的对某些克隆代码无法直接提取的问题,提出一种新的语义保持的克隆代码无定型过程提取方法.该方法结合程序依赖图和抽象语法树对程序进行语义分析,取消了传统的保持语法结构不变的过程提取算法对语句结构一致性的约束,保留了语义一致性约束,从而解决了传统方法不易处理的连续但不能直接提取的克隆代码提取问题,降低了对未标记语句提升的需求,并且不需要对跳转语句进行特殊处理.实验结果表明该方法可以提取传统的保持语法结构不变的过程提取方法不能提取的克隆代码,提高了克隆代码过程提取的准确性和适用性.