动态神经程序嵌入用于程序修复
本文提出了一种学习代码语义的新颖处理技术,并将其应用于各种程序分析任务中,其中使用的 Embeddings 基于独立于源编程语言的代码的 IR,现有技术不足以强烈理解程序语义。
Jun, 2018
本研究提出了动态嵌入,这是一种递归机制,能够依据变量在程序中的角色来调整学习到的语义,该方法在代码自动补全和错误修复任务中,显著提高了循环神经网络的性能。
Oct, 2020
本文探讨了基于 NLP 预训练技术的代码表示学习的进展,提出了一种新的程序语义学习模式,即模型应该学习由与操作语义基本操作对齐的表示和不可或缺的环境转换信息构成的信息。为了验证我们的建议,我们提出了一个名为 OSCAR 的分层 Transformer 预训练模型,通过从 IR 和静态分析导出的编码表示中学习来表示基本操作和环境转换信息,证明了 OSCAR 在许多实际软件工程任务中理解程序语义的杰出能力。
May, 2021
本文通过对三个 Java 数据集和三种最先进的神经网络代码的比较,来评估神经程序模型在语义保持转换下的一般性,并发现神经程序模型在语法和外部形象不同但语义相同的程序上表现不佳。
Jul, 2020
本文利用神经网络将程序编码成一个从预置条件空间到后置条件空间的线性映射,提出了一种利用这些线性映射作为特征的规模反馈算法,并将其应用于 Code.org Hour of Code 和 Stanford University 的 CS1 课程的编程测评中。
May, 2015
使用递归神经网络 (RNNs) 生成自动化反馈以修复编程任务中的语法错误,可以完全修复 31.69% 的提交并部分修正 6.39% 的提交。
Mar, 2016
本文提出了一种基于程序 -- 反馈图的图神经网络及一种用非监督学习方法构建大量程序修复样例的自监督学习范式。最终应用的 DrRepair 算法在两个应用领域上都取得了比之前的工作更好的修复效果。
May, 2020
本文研究使用程序语言这一中间测试平台,探究语言模型是否能够理解语义,并发现 Transform 模型可通过样例抽象出当前和未来程序状态,使用的探测器准确率与执行输入所生成的程序一致。文中还提出了一种语义干预的实验方法,并展示了模型能够生成更短、更正确的程序。
May, 2023