当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Modeling Functional Similarity in Source Code with Graph-Based Siamese Networks
arXiv - CS - Software Engineering Pub Date : 2020-11-23 , DOI: arxiv-2011.11228
Nikita Mehrotra, Navdha Agarwal, Piyush Gupta, Saket Anand, David Lo, Rahul Purandare

Code clones are duplicate code fragments that share (nearly) similar syntax or semantics. Code clone detection plays an important role in software maintenance, code refactoring, and reuse. A substantial amount of research has been conducted in the past to detect clones. A majority of these approaches use lexical and syntactic information to detect clones. However, only a few of them target semantic clones. Recently, motivated by the success of deep learning models in other fields, including natural language processing and computer vision, researchers have attempted to adopt deep learning techniques to detect code clones. These approaches use lexical information (tokens) and(or) syntactic structures like abstract syntax trees (ASTs) to detect code clones. However, they do not make sufficient use of the available structural and semantic information hence, limiting their capabilities. This paper addresses the problem of semantic code clone detection using program dependency graphs and geometric neural networks, leveraging the structured syntactic and semantic information. We have developed a prototype tool HOLMES, based on our novel approach, and empirically evaluated it on popular code clone benchmarks. Our results show that HOLMES performs considerably better than the other state-of-the-art tool, TBCCD. We also evaluated HOLMES on unseen projects and performed cross dataset experiments to assess the generalizability of HOLMES. Our results affirm that HOLMES outperforms TBCCD since most of the pairs that HOLMES detected were either undetected or suboptimally reported by TBCCD.

中文翻译:

使用基于图的暹罗网络在源代码中对功能相似性进行建模

代码克隆是重复的代码片段,它们共享(几乎)相似的语法或语义。代码克隆检测在软件维护,代码重构和重用中起着重要作用。过去已经进行了大量研究以检测克隆。这些方法大多数使用词法和句法信息来检测克隆。但是,其中只有少数针对语义克隆。最近,受深度学习模型在其他领域(包括自然语言处理和计算机视觉)成功的推动,研究人员已尝试采用深度学习技术来检测代码克隆。这些方法使用词法信息(令牌)和(或)句法结构(例如抽象语法树(AST))来检测代码克隆。然而,它们没有充分利用可用的结构和语义信息,因此限制了它们的功能。本文利用结构化的句法和语义信息,解决了使用程序依赖图和几何神经网络进行语义代码克隆检测的问题。我们基于新颖的方法开发了HOLMES原型工具,并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。限制他们的能力。本文利用结构化的句法和语义信息,解决了使用程序依赖图和几何神经网络进行语义代码克隆检测的问题。我们基于新颖的方法开发了HOLMES原型工具,并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。限制他们的能力。本文利用结构化的句法和语义信息,解决了使用程序依赖图和几何神经网络进行语义代码克隆检测的问题。我们基于新颖的方法开发了HOLMES原型工具,并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。本文利用结构化的句法和语义信息,解决了使用程序依赖图和几何神经网络进行语义代码克隆检测的问题。我们基于新颖的方法开发了HOLMES原型工具,并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。本文利用结构化的句法和语义信息,解决了使用程序依赖图和几何神经网络进行语义代码克隆检测的问题。我们基于新颖的方法开发了HOLMES原型工具,并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。并根据流行的代码克隆基准对它进行了经验评估。我们的结果表明,HOLMES的性能大大优于其他先进的工具TBCCD。我们还评估了未曾见过的项目中的HOLMES,并进行了跨数据集实验以评估HOLMES的可推广性。我们的研究结果肯定了HOLMES优于TBCCD,因为TBCCD并未检测到HOLMES检测到的大多数配对,或者未对它们进行优化报告。
更新日期:2020-11-25
down
wechat
bug