计算机科学与探索

北大核心,INSPEC,JST,CSCD,WJCI

国内刊号:11-5602/TP

国际刊号:1673-9418

计算机科学与探索杂志2021年第3期:代码特征自动提取方法

发布日期:

作者:史志成, 周宇

单位:1.南京航空航天大学 计算机科学与技术学院,南京 2100162.南京航空航天大学 高安全系统的软件开发与验证技术工信部重点实验室,南京 2100163.南京大学 软件新技术国家重点实验室,南京 210023

关键词:代码特征提取,代码分类,程序理解,相似代码搜索

神经网络在软件工程中的应用极大程度上缓解了传统的人工提取代码特征的压力。已有的研究往往将代码简化为自然语言或者依赖专家的领域知识来提取代码特征,简化为自然语言的处理方法过于简单,容易造成信息丢失,而引入专家制定启发式规则的模型往往过于复杂,可拓展性以及普适性不强。鉴于以上问题,提出了一种基于卷积和循环神经网络的自动代码特征提取模型,该模型借助代码的抽象语法树(AST)来提取代码特征。为了缓解因AST过于庞大而带来的梯度消失问题,对AST进行切割,转换成一个AST序列再作为模型的输入。该模型利用卷积网络提取代码中的结构信息,利用双向循环神经网络提取代码中的序列信息。整个流程不需要专家的领域知识来指导模型的训练,只需要将标注类别的代码作为模型的输入就可以让模型自动地学习如何提取代码特征。应用训练好的分类编码器,在相似代码搜索任务上进行测试,Top1、NDCG、MRR的值分别能达到0.560、0.679和0.638,对比当下前沿的用于代码特征提取的深度学习模型以及业界常用的代码相似检测工具有显著的优势。

来源:2021年第3期

《计算机科学与探索》期刊编辑部

查看计算机科学与探索杂志2021年第3期

联系我们

  • 地址:北京市海淀区北四环中路211号
  • 电话:(010)89056056
  • E-mail:fcst@vip.163.com

咨询工作人员