APP下载

深度学习在代码表征中的应用综述

2021-10-28谢春丽

计算机工程与应用 2021年20期
关键词:语义模型

谢春丽,梁 瑶,王 霞

江苏师范大学 计算机科学与技术学院,江苏 徐州 221116

GitHub、Stack Overflow等平台存在着大量的开源项目和源代码片段,开发人员如果能有效地将功能相似的代码引入到自己的项目中,可以大幅度提高软件开发效率。那么,如何在海量源码中快速而准确地找到满足功能和性能需求的源码成为软件工程领域关注的主要任务。除此以外,代码克隆检测、故障定位、代码注释、代码摘要生成、命名推荐等问题也是该领域的研究热点。这几个任务都有一个相同的关键问题,即需要对源代码进行一定的预处理,从中抽取特征进行源代码表征。如图1所示,源代码表征是解决各类问题的第一步,在此基础上设计各类算法,从而完成代码克隆检测、故障定位、摘要生成或其他任务。源代码的表征方式决定了对源代码特征抽取的程度,进而影响后续任务所能检测的精度。

图1 基于深度学习的代码表征框架Fig.1 Code representation framework based on deep learning

根据对源代码信息的利用程度,代码表征方法可以分为基于文本、词汇、语法、语义四个层面:基于文本的表征方式不经任何修饰直接把源代码看作文本/字符;基于词汇的表征方式首先对源代码词法分析,然后把源代码符号序列化;基于语法的表征方式往往从源代码的语法树或者抽象语法树抽取代码语法信息;基于语义的表征方式则进一步从源代码的控制流和数据流等信息中提取隐含的语义信息。这几种不同层次的表征方式各……

登录APP查看全文

猜你喜欢

语义模型
一半模型
重尾非线性自回归模型自加权M-估计的渐近分布
语言与语义
3D打印中的模型分割与打包
“上”与“下”语义的不对称性及其认知阐释
FLUKA几何模型到CAD几何模型转换方法初步研究
认知范畴模糊与语义模糊
“深+N季”组配的认知语义分析
语义分析与汉俄副名组合
修辞的基础——语义和谐律