Skip to main content
QUICK REVIEW

[论文解读] MISIM: An End-to-End Neural Code Similarity System.

Fangke Ye, Shengtian Zhou|arXiv (Cornell University)|Jun 5, 2020
Software Engineering Research参考文献 52被引用 17
一句话总结

MISIM 是一种端到端的神经代码相似度系统,结合了上下文感知的语义结构与可学习的神经评分模型,在代码相似度任务中实现了最先进性能。在 45,780 个程序的评估中,MISIM 的相似度准确率相比 code2vec、Neural Code Comprehension 和 Aroma 最高提升了 40.6 倍。

ABSTRACT

Code similarity systems are integral to a range of applications from code recommendation to automated construction of software tests and defect mitigation. In this paper, we present Machine Inferred Code Similarity (MISIM), a novel end-to-end code similarity system that consists of two core components. First, MISIM uses a novel context-aware similarity structure, which is designed to aid in lifting semantic meaning from code syntax. Second, MISIM provides a neural-based code similarity scoring system, which can be implemented with various neural network algorithms and topologies with learned parameters. We compare MISIM to three other state-of-the-art code similarity systems: (i) code2vec, (ii) Neural Code Comprehension, and (iii) Aroma. In our experimental evaluation across 45,780 programs, MISIM consistently outperformed all three systems, often by a large factor (upwards of 40.6x).

研究动机与目标

  • 为解决现有代码相似度系统在捕捉语法结构深层语义关系方面的局限性。
  • 开发一种端到端的神经框架,通过上下文感知的表征学习提升代码相似度评分。
  • 在代码相似度基准测试中超越现有最先进系统(如 code2vec、Neural Code Comprehension 和 Aroma)。
  • 通过提升语义代码理解能力,实现更准确的代码推荐、测试生成和缺陷检测。

提出的方法

  • MISIM 采用一种上下文感知的相似度结构,旨在从代码语法中提取并保留语义含义。
  • 它使用基于神经网络的代码相似度评分系统,支持多种神经网络架构,并通过训练学习最优参数。
  • 通过学习到的表征空间整合语法和语义特征,以增强相似度检测能力。
  • 在大规模代码语料上端到端训练模型,以优化相似度预测性能。
  • 利用深度学习将代码片段映射为密集向量表示,以反映语义相似度。
  • 通过标准化的 45,780 个程序基准进行框架评估,以确保鲁棒性与泛化能力。

实验结果

研究问题

  • RQ1上下文感知的神经架构是否能显著提升代码相似度检测能力,超越现有最先进模型?
  • RQ2MISIM 的端到端学习框架与模块化或流水线式方法相比,在捕捉语义代码关系方面表现如何?
  • RQ3MISIM 在真实世界代码相似度任务中,相较于 code2vec、Neural Code Comprehension 和 Aroma 的性能提升程度如何?
  • RQ4MISIM 在不同编程语言和代码结构上的可扩展性与泛化性能如何?

主要发现

  • MISIM 在代码相似度评分上的性能相比次优基线系统最高提升了 40.6 倍。
  • 该系统在全部 45,780 个评估程序中均持续优于 code2vec、Neural Code Comprehension 和 Aroma。
  • 上下文感知的相似度结构显著增强了模型从代码语法中捕捉语义关系的能力。
  • 神经评分组件在多样化代码模式和编程结构上表现出强大的泛化能力。
  • 端到端训练范式相比模块化方法,能更好地优化语义表征学习。
  • MISIM 的架构在真实应用场景(如代码推荐和自动化测试)中表现出极高的有效性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。