典型文献
基于Token语义构建的代码克隆检测
文献摘要:
传统的基于Token的克隆检测方法利用代码字符串的序列化特性,可以在大型代码仓中快速检测克隆.但是与基于抽象语法树(AST)、程序依赖图(PDG)的方法相比,由于缺少语法及语义信息,针对文本有较大差异的克隆代码检测困难.为此,提出一种赋予语义信息的Token克隆检测方法.首先,分析抽象语法树,使用AST路径抽象位于叶子节点的Token的语义信息;然后,在函数名和类型名角色的Token上建立低成本索引,达到快速并有效地筛选候选克隆片段的目的.最后,使用赋予语义信息的Token判定代码块之间的相似性.在公开的大规模数据集BigCloneBench实验结果表明,该方法在文本相似度较低的Moderately Type-3和Weakly Type-3/Type-4类型克隆上显著优于主流方法,包括NiCad、Deckard、CCAligner等,同时在大型代码仓上需要更少的检测时间.
文献关键词:
代码克隆检测;抽象语法树;语义信息;高效索引;源代码
中图分类号:
作者姓名:
王文杰;徐云
作者机构:
中国科学技术大学计算机科学与技术学院,合肥230027;中国科学技术大学高性能计算安徽省重点实验室,合肥230027
文献出处:
引用格式:
[1]王文杰;徐云-.基于Token语义构建的代码克隆检测)[J].计算机系统应用,2022(11):60-67
A类:
BigCloneBench,Moderately,NiCad,Deckard,CCAligner
B类:
Token,代码克隆检测,法利,码字,字符串,序列化,快速检测,抽象语法树,AST,程序依赖图,PDG,语义信息,本有,叶子,数名,名角,大规模数据集,文本相似度,Type,Weakly,主流方法,检测时间,高效索引,源代码
AB值:
0.286689
相似文献
机标中图分类号,由域田数据科技根据网络公开资料自动分析生成,仅供学习研究参考。