CC2Vec:代码更改的分布式表示
此研究使用 CCRep 方法,通过将代码更改表示为特征向量,学习在多种软件工程任务上使用的高质量的代码更改表示方法。实验结果表明 CCRep 在各任务上表现优异。
Feb, 2023
本文介绍了一种基于神经网络模型的代码嵌入方法,通过将代码片段表示为单一的固定长度代码向量,学习抽象语法树中路径的原子表示,并同时学习集合聚合的方法,从而预测代码的语义属性。通过训练一个包含 14M 个方法的数据集,我们证明了该方法的有效性,并通过相应的数据比较表明,该方法比先前的技术有着相对提高超过 75%,是第一个成功预测大型跨项目语料库上的方法名的方法。
Mar, 2018
本文评估了代码表示模型 Code2vec 在 C 源代码中检测安全漏洞任务上的表现,结果表明 Code2vec 在此任务上的表现与预训练 RoBERTa 等简单的基于 Transformer 的方法相比具有可比性,并且优于更为简单的基于 NLP 的方法,并在维持低计算需求的同时达到了 61.43%的准确率。
Jun, 2021
本文提出了一种学习代码语义的新颖处理技术,并将其应用于各种程序分析任务中,其中使用的 Embeddings 基于独立于源编程语言的代码的 IR,现有技术不足以强烈理解程序语义。
Jun, 2018
本研究提出了一种基于对比学习的无监督学习框架 Fun2Vec,能够直接作用于反汇编二进制函数,并且不需要人工标记相似或不相似信息,在二进制代码的相似性检测领域有着极高的准确率和优势。
Sep, 2022
本研究通过提出一种基于树形神经网络的方法,实现了从海量开源代码中自动学习提取代码改变模式,并提出了一种名为 CODIT 的代码改变建议引擎,在实验中表现良好,能够有效地学习和建议代码改变和 BUG 修复方法。
Sep, 2018
本文探讨了一种基于输入程序快照的源代码表示 ——Code2Snapshot,对其进行了多种变体的评估,并将其与利用输入程序丰富的语法和语义特征的最先进的表示方法进行了比较,研究表明,在代码概述和分类任务中,Code2Snapshot 的实用性相当于最先进的表示方法,这表明在某些任务中,神经模型可以仅依赖于输入程序的结构而提供高性能。
Nov, 2021
本论文研究使用机器学习进行源码分析的问题,提出解决标准机器学习方法不能直接用于源代码的问题。作者通过使用 code2vec 嵌入方法来解决问题,但是实验结果表明,变量名对预测结果有较大影响。因此,作者提出了对变量名进行混淆的方法,进一步提高了嵌入模型的准确性,并探索了一种方法将类别层面的信息整合到嵌入模型中。研究结果在源代码分类方面表现出了较好的性能。
Apr, 2020
CV4Code 是一种针对源代码的紧凑而有效的计算机视觉方法,不需要词法分析或语法树解析的步骤,它将代码片段视为二维图像,并使用 ASCII 码点图像表示方法,利用这种方法生成源代码图像非常快速且无冗余,进一步使用卷积神经网络和 transformer 网络学习进行功能预测和检索,实验结果表明,该方法在处理源代码理解任务方面显著优于其他方法。
May, 2022
本论文提出了一种新的角度来解决补丁正确性评估问题,并利用自然语言处理和神经网络来学习和预测补丁是否正确,取得了 0.886 的 AUC 值和 93% 的正确率。
Aug, 2022