基于深度学习的程序理解研究进展
发布时间:2022-10-21 16:26
程序理解通过对程序进行分析、抽象、推理从而获取程序中相关信息,在软件开发、维护、迁移等过程中起重要作用,因而得到学术界和工业界的广泛关注.传统程序理解很大程度上依赖开发人员的经验,但随着软件规模及其复杂度不断增大,完全依赖开发人员的先验知识提取程序特征既耗时耗力,又很难充分挖掘出程序中隐含特征.深度学习是一种数据驱动的端到端的方法,它根据已有数据构建深度神经网络对数据中隐含的特征进行挖掘,已经在众多领域中获得成功应用.将深度学习技术运用于程序理解中,根据具体任务以及大量数据自动地学习程序数据中蕴含的特征,可以充分地挖掘出程序中隐含的知识,提高程序理解的效率.对基于深度学习的程序理解研究工作进行综述,首先对程序所包含的性质进行分析,然后介绍主流的程序理解模型,包括基于序列、结构以及执行过程的程序理解模型.随后展示基于深度学习的程序理解在程序分析中的应用,主要针对代码补全、代码注释生成、代码检索等任务.最后,分析并总结程序理解研究所面临的挑战.
【文章页数】:16 页
【文章目录】:
1 程序性质及程序理解框架
1.1 程序性质
1.1.1 强结构性
1.1.2 自定义标识符
1.1.3 长依赖
1.1.4 可执行性
1.2 基于深度学习的程序理解框架
2 程序理解的深度学习模型
2.1 基于序列的程序理解模型
2.1.1 基于字符序列的程序理解模型
2.1.2 基于词素 (token) 序列的程序理解模型
2.1.3 基于应用程序接口 (API) 序列程序理解模型
2.2 基于结构的程序理解模型
2.2.1 基于抽象语法树的程序理解模型
2.2.2 基于图的程序理解模型
2.3 基于执行过程的程序理解模型
2.4 模型对比分析
3 相关应用
3.1 代码补全
3.2 代码注释生成
3.3 代码风格修正
3.4 代码搜索
3.5 程序自动生成
4 问题与挑战
4.1 数据集的获取
4.2 程序的表示
4.3 自定义标识符的处理
4.4 模型的有效性分析
5 总 结
本文编号:3695991
【文章页数】:16 页
【文章目录】:
1 程序性质及程序理解框架
1.1 程序性质
1.1.1 强结构性
1.1.2 自定义标识符
1.1.3 长依赖
1.1.4 可执行性
1.2 基于深度学习的程序理解框架
2 程序理解的深度学习模型
2.1 基于序列的程序理解模型
2.1.1 基于字符序列的程序理解模型
2.1.2 基于词素 (token) 序列的程序理解模型
2.1.3 基于应用程序接口 (API) 序列程序理解模型
2.2 基于结构的程序理解模型
2.2.1 基于抽象语法树的程序理解模型
2.2.2 基于图的程序理解模型
2.3 基于执行过程的程序理解模型
2.4 模型对比分析
3 相关应用
3.1 代码补全
3.2 代码注释生成
3.3 代码风格修正
3.4 代码搜索
3.5 程序自动生成
4 问题与挑战
4.1 数据集的获取
4.2 程序的表示
4.3 自定义标识符的处理
4.4 模型的有效性分析
5 总 结
本文编号:3695991
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/3695991.html