当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Comparison of Code Embeddings and Beyond
arXiv - CS - Programming Languages Pub Date : 2021-09-15 , DOI: arxiv-2109.07173
Siqi Han, DongXia Wang, Wanting Li, Xuesong Lu

Program representation learning is a fundamental task in software engineering applications. With the availability of "big code" and the development of deep learning techniques, various program representation learning models have been proposed to understand the semantic properties of programs and applied on different software engineering tasks. However, no previous study has comprehensively assessed the generalizability of these deep models on different tasks, so that the pros and cons of the models are unclear. In this experience paper, we try to bridge this gap by systemically evaluating the performance of eight program representation learning models on three common tasks, where six models are based on abstract syntax trees and two models are based on plain text of source code. We kindly explain the criteria for selecting the models and tasks, as well as the method for enabling end-to-end learning in each task. The results of performance evaluation show that they perform diversely in each task and the performance of the AST-based models is generally unstable over different tasks. In order to further explain the results, we apply a prediction attribution technique to find what elements are captured by the models and responsible for the predictions in each task. Based on the findings, we discuss some general principles for better capturing the information in the source code, and hope to inspire researchers to improve program representation learning methods for software engineering tasks.

中文翻译:

代码嵌入及其他方面的比较

程序表示学习是软件工程应用中的一项基本任务。随着“大代码”的出现和深度学习技术的发展,各种程序表示学习模型被提出来理解程序的语义属性并应用于不同的软件工程任务。然而,之前的研究还没有全面评估这些深度模型在不同任务上的泛化能力,因此模型的优缺点尚不清楚。在这篇经验论文中,我们试图通过系统地评估八个程序表示学习模型在三个常见任务上的性能来弥合这一差距,其中六个模型基于抽象语法树,两个模型基于源代码的纯文本。我们亲切地解释了选择模型和任务的标准,以及在每个任务中启用端到端学习的方法。性能评估的结果表明,它们在每个任务中的表现各不相同,基于 AST 的模型的性能在不同的任务上通常是不稳定的。为了进一步解释结果,我们应用了一种预测归因技术来查找模型捕获了哪些元素并负责每个任务中的预测。基于这些发现,我们讨论了一些更好地捕获源代码中信息的一般原则,并希望启发研究人员改进软件工程任务的程序表示学习方法。性能评估的结果表明,它们在每个任务中的表现各不相同,基于 AST 的模型的性能在不同的任务上通常是不稳定的。为了进一步解释结果,我们应用了一种预测归因技术来查找模型捕获了哪些元素并负责每个任务中的预测。基于这些发现,我们讨论了一些更好地捕获源代码中信息的一般原则,并希望启发研究人员改进软件工程任务的程序表示学习方法。性能评估的结果表明,它们在每个任务中的表现各不相同,基于 AST 的模型的性能在不同的任务上通常是不稳定的。为了进一步解释结果,我们应用了一种预测归因技术来查找模型捕获了哪些元素并负责每个任务中的预测。基于这些发现,我们讨论了一些更好地捕获源代码中信息的一般原则,并希望启发研究人员改进软件工程任务的程序表示学习方法。我们应用预测归因技术来查找模型捕获了哪些元素并负责每个任务中的预测。基于这些发现,我们讨论了一些更好地捕获源代码中信息的一般原则,并希望启发研究人员改进软件工程任务的程序表示学习方法。我们应用预测归因技术来查找模型捕获了哪些元素并负责每个任务中的预测。基于这些发现,我们讨论了一些更好地捕获源代码中信息的一般原则,并希望启发研究人员改进软件工程任务的程序表示学习方法。
更新日期:2021-09-16
down
wechat
bug