使用代码快照学习源代码的表征
CV4Code 是一种针对源代码的紧凑而有效的计算机视觉方法,不需要词法分析或语法树解析的步骤,它将代码片段视为二维图像,并使用 ASCII 码点图像表示方法,利用这种方法生成源代码图像非常快速且无冗余,进一步使用卷积神经网络和 transformer 网络学习进行功能预测和检索,实验结果表明,该方法在处理源代码理解任务方面显著优于其他方法。
May, 2022
本文介绍了一种基于神经网络模型的代码嵌入方法,通过将代码片段表示为单一的固定长度代码向量,学习抽象语法树中路径的原子表示,并同时学习集合聚合的方法,从而预测代码的语义属性。通过训练一个包含 14M 个方法的数据集,我们证明了该方法的有效性,并通过相应的数据比较表明,该方法比先前的技术有着相对提高超过 75%,是第一个成功预测大型跨项目语料库上的方法名的方法。
Mar, 2018
本文提出了一种学习代码语义的新颖处理技术,并将其应用于各种程序分析任务中,其中使用的 Embeddings 基于独立于源编程语言的代码的 IR,现有技术不足以强烈理解程序语义。
Jun, 2018
CODE2SEQ 是一种利用编程语言的语法结构更好地对源代码进行编码的方法,其利用组成路径的集合将代码片段表示为其抽象语法树(AST),使用注意力机制来选择相关路径来解码,该方法在两种编程语言和四个数据集上的两个任务中表现出卓越的性能,并超过了针对编程语言的先前模型以及最先进的 NMT 模型。
Aug, 2018
该研究介绍了一种将源代码表示为图像的新方法,可以将其直接输入深度学习算法,以实现漏洞预测,并在公共数据集上进行了性能评估,并与现有最先进解决方案进行比较。
May, 2021
源代码摘要是编写源代码行为的自然语言描述的任务。近来,神经源代码摘要已成为研究自动化代码摘要技术的前沿,本文介绍了一种基于语句的记忆编码器,通过训练学习了流程的重要元素,从而实现了基于语句的子程序表示,并展示了与最新技术相比的显著改进。
Jul, 2023
本研究开发了多种神经网络模型,利用合成数据测试模型的编辑模式学习能力,从原型生成下一步的编辑行为。文章提出了一种新颖的 “注意力” 和 “指针” 网络的组合模型能够最大化地提高性能和可伸缩性,应用结果初步证明了开发可以习得预测未来编辑的工具的可行性。
Apr, 2019
本文介绍了如何使用图表示代码的句法和语义结构,并使用基于图的深度学习方法来学习对程序结构进行推理的方法。作者在两个任务上对该方法进行了评估:VarNaming 和 VarMisuse,结果表明使用已知结构的建模方法具有优势,并且可以在许多情况下学习推理有意义的变量名和解决 VarMisuse 任务,并且 VarMisuse 还可以发现成熟开源项目中的错误。
Nov, 2017
研究报告探讨了现有的基于机器学习的方法,展示了不同网络安全任务和编程语言所使用的展示形式,并发现了基于图形的展示形式最受欢迎,Tokenizer 和 ASTs 是最受欢迎的展示形式,漏洞检测是最受欢迎的网络安全任务,C 语言是最多技术涵盖的编程语言,而基于序列的模型是最受欢迎的模型类型,支持向量机是最受欢迎的模型。
Mar, 2024
本论文研究使用机器学习进行源码分析的问题,提出解决标准机器学习方法不能直接用于源代码的问题。作者通过使用 code2vec 嵌入方法来解决问题,但是实验结果表明,变量名对预测结果有较大影响。因此,作者提出了对变量名进行混淆的方法,进一步提高了嵌入模型的准确性,并探索了一种方法将类别层面的信息整合到嵌入模型中。研究结果在源代码分类方面表现出了较好的性能。
Apr, 2020