计算机应用研究

北大核心,JST,Pж(AJ),CSCD扩展版,WJCI

国内刊号:51-1196/TP

国际刊号:1001-3695

计算机应用研究杂志2024年第7期:基于对比学习的跨语言代码克隆检测方法

发布日期:

作者:吕泉润,谢春丽,万泽轩,魏家劲,

单位:江苏师范大学计算机科学与技术学院,江苏徐州221116;

关键词:跨语言,代码克隆,对比学习,抽象语法树,

基金:国家自然科学基金面上基金资助项目(62276119);江苏师范大学研究生科研与实践创新计划资助项目(2022XKT1538);;

代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(abstract syntax tree,AST)的单语言克隆检测已经取得了较为显著的效果,但跨语言代码的AST节点存在同义词、近义词且手工标注数据集成本高等问题,限制了现有克隆检测方法的有效性和实用性。针对上述问题,提出一种基于对比学习的树卷积神经网络(contrastive tree convolutional neural network,CTCNN)的跨语言代码克隆检测方法。该方法首先将不同编程语言的代码解析为AST,并对AST的节点类型和节点值作同义词转换处理,以降低不同编程语言AST之间的差异;同时,采用对比学习扩充负样本并对模型进行训练,使得在小样本数据集下能够最小化克隆对之间的距离,最大化非克隆对之间的距离。最后在公开数据集上进行了评测,精确度达到95.26%、召回率为99.98%、F1为97.56%。结果表明,相较于现有的最好的CLCDSA和C4方法,该模型的检测精度分别提高了43.92%和3.73%,其F1值分别提升了29.84%和6.29%,证明了所提模型是一种有效的跨语言代码克隆检测方法。

来源:2024年第7期

《计算机应用研究》期刊编辑部

查看计算机应用研究杂志2024年第7期

联系我们

  • 地址:四川省成都市武候区成科西路3号
  • 电话:028-85249567
  • E-mail:journal@arocmag.cn

咨询工作人员