一种基于神经网络的代码嵌入方法
对代码进行分析研究具有很多的应用场景,例如代码抄袭检测、软件漏洞搜索等.随着人工智能的发展,神经网络技术被广泛应用于代码分析和研究.然而,现有的方法要么简单地将代码视为普通的自然语言处理,要么使用太过复杂的规则对代码进行采样,前者的处理方式容易造成代码关键信息的丢失,而后者会造成算法过于复杂,模型的训练需要花费较长的时间.Alon等提出了一种名为Code2vec的算法,该算法采用了一种简单且有效的代码表示方法,相比之前的代码分析方法有着显著的优势,但Code2vec算法仍存在一些局限性.因此,在其基础上提出了一种基于神经网络的代码嵌入方法,该方法的主要思想是将代码函数表示为代码的嵌入向量.首先将一个代码函数分解为一系列抽象语法树路径,然后通过神经网络去学习如何表示每一条路径,最后将所有路径聚合成一个嵌入向量来表示当前的代码函数.文中实现了一个基于该方法的原型系统,实验结果表明,相比Code2vec,所提算法的结构更加简单、训练速度更快.
神经网络、代码嵌入、代码分析、抽象语法树、代码分类
50
TP311(计算技术、计算机技术)
2023-05-12(万方平台首次上网日期,不代表论文的发表时间)
共8页
64-71