首页> 中文期刊>计算机科学与探索 >代码特征自动提取方法

代码特征自动提取方法

     

摘要

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

著录项

  • 来源
    《计算机科学与探索》|2021年第3期|456-467|共12页
  • 作者

    史志成; 周宇;

  • 作者单位

    南京航空航天大学计算机科学与技术学院 南京210016;

    南京航空航天大学高安全系统的软件开发与验证技术工信部重点实验室 南京210016;

    南京航空航天大学计算机科学与技术学院 南京210016;

    南京航空航天大学高安全系统的软件开发与验证技术工信部重点实验室 南京210016;

    南京大学软件新技术国家重点实验室 南京210023;

  • 原文格式 PDF
  • 正文语种 chi
  • 中图分类 信息处理(信息加工);
  • 关键词

    代码特征提取; 代码分类; 程序理解; 相似代码搜索;

  • 入库时间 2022-08-20 03:40:14

相似文献

  • 中文文献
  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号