基于对比学习的跨语言代码克隆检测方法

Contrastive learning based cross-language code clone detection
吕泉润
谢春丽
万泽轩
魏家劲
江苏师范大学 计算机科学与技术学院, 江苏 徐州 221116

摘要

代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(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%,证明了所提模型是一种有效的跨语言代码克隆检测方法。

基金项目

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

出版信息

DOI: 10.19734/j.issn.1001-3695.2023.11.0534
出版期卷: 《计算机应用研究》 印刷出版, 2024年第41卷 第7期
所属栏目: 软件技术研究
出版页码: 2147-2152
文章编号: 1001-3695(2024)07-031-2147-06

发布历史

[2024-01-22] 优先出版
[2024-07-05] 印刷出版

引用本文

吕泉润, 谢春丽, 万泽轩, 等. 基于对比学习的跨语言代码克隆检测方法 [J]. 计算机应用研究, 2024, 41 (7): 2147-2152. (Lyu Quanrun, Xie Chunli, Wan Zexuan, et al. Contrastive learning based cross-language code clone detection [J]. Application Research of Computers, 2024, 41 (7): 2147-2152. )

关于期刊

  • 计算机应用研究 月刊
  • Application Research of Computers
  • 刊号 ISSN 1001-3695
    CN  51-1196/TP

《计算机应用研究》创刊于1984年,是由四川省科技厅所属四川省计算机研究院主办的计算技术类学术刊物。

《计算机应用研究》瞄准本学科领域迫切需要的前沿技术,及时反映国内外计算机应用研究的主流技术、热点技术及最新发展趋势。主要刊载内容包括本学科领域高水平的学术论文、本学科最新科研成果和重大应用成果。栏目内容涉及计算机学科新理论、计算机基础理论、算法理论研究、算法设计与分析、区块链技术、系统软件与软件工程技术、模式识别与人工智能、体系结构、先进计算、并行处理、数据库技术、计算机网络与通信技术、信息安全技术、计算机图像图形学及其最新热点应用技术。

《计算机应用研究》拥有众多高层次读者、作者,读者对象主要为从事计算机学科领域高、中级研究人员及工程技术人员,各高等院校计算机专业及相关专业的师生。多年来《计算机应用研究》的总被引频次及Web下载率一直名列本学科同类学术刊物前茅,所刊发的学术论文以其新颖性、学术性、前瞻性、导向性、实用性而备受广大读者的喜爱。


收录和评价

  • 第二届国家期刊奖百种重点期刊
  • 中国期刊方阵双效期刊
  • 全国中文核心期刊(北大2023年版)
  • 中国科技核心期刊
  • 中国科学引文数据库(CSCD)来源期刊
  • RCCSE中国核心学术期刊
  • 中国计算机学会会刊
  • 2020—2022年科技期刊世界影响力指数(WJCI)报告收录期刊
  • 中国科技期刊精品数据库全文来源期刊
  • 中国学术期刊综合评价数据库来源期刊
  • 《中国期刊网》《中国学术期刊(光盘版)》来源期刊
  • 2017—2019年中国国际影响力优秀学术期刊(自然科学与工程技术)
  • 中国精品科技期刊顶尖学术论文(F5000)项目来源期刊
  • 《中国工程技术电子信息网》《电子科技文献数据库》来源期刊
  • 英国《科学文摘》(INSPEC)来源期刊
  • 《日本科学技术振兴机构数据库》(JST)来源期刊
  • 俄罗斯《文摘杂志》(AJ, VINITI)来源期刊
  • 美国《艾博思科学术数据库》(EBSCO)全文来源期刊
  • 美国《剑桥科学文摘(自然科学)》(CSA(NS))核心期刊
  • 波兰《哥白尼索引》(IC)来源期刊
  • 美国《乌利希期刊指南(网络版)》(Ulrichsweb)收录期刊