-
题名代码特征自动提取方法
被引量:7
- 1
-
-
作者
史志成
周宇
-
机构
南京航空航天大学计算机科学与技术学院
南京航空航天大学高安全系统的软件开发与验证技术工信部重点实验室
南京大学软件新技术国家重点实验室
-
出处
《计算机科学与探索》
CSCD
北大核心
2021年第3期456-467,共12页
-
基金
国家重点研发计划(2018YFB1003902)
国家自然科学基金(61972197)
+1 种基金
中央高校基本科研业务费专项资金(NS2019055)
江苏高校“青蓝工程”。
-
文摘
神经网络在软件工程中的应用极大程度上缓解了传统的人工提取代码特征的压力。已有的研究往往将代码简化为自然语言或者依赖专家的领域知识来提取代码特征,简化为自然语言的处理方法过于简单,容易造成信息丢失,而引入专家制定启发式规则的模型往往过于复杂,可拓展性以及普适性不强。鉴于以上问题,提出了一种基于卷积和循环神经网络的自动代码特征提取模型,该模型借助代码的抽象语法树(AST)来提取代码特征。为了缓解因AST过于庞大而带来的梯度消失问题,对AST进行切割,转换成一个AST序列再作为模型的输入。该模型利用卷积网络提取代码中的结构信息,利用双向循环神经网络提取代码中的序列信息。整个流程不需要专家的领域知识来指导模型的训练,只需要将标注类别的代码作为模型的输入就可以让模型自动地学习如何提取代码特征。应用训练好的分类编码器,在相似代码搜索任务上进行测试,Top1、NDCG、MRR的值分别能达到0.560、0.679和0.638,对比当下前沿的用于代码特征提取的深度学习模型以及业界常用的代码相似检测工具有显著的优势。
-
关键词
代码特征提取
代码分类
程序理解
相似代码搜索
-
Keywords
code feature extraction
code classification
program comprehension
similar code search
-
分类号
TP391
[自动化与计算机技术—计算机应用技术]
-