基于深度学习的代码生成方法研究进展

作者:杨泽洲; 陈思榕; 高翠芸*; 李振昊; 李戈; 吕荣聪
来源:软件学报, 2023, 1-25.
DOI:10.13328/j.cnki.jos.006981

摘要

关注根据自然语言描述生成相关代码片段的代码生成(code generation)任务.在软件开发过程中,开发人员常常会面临两种情形.一种是通用功能的实现,需要开发人员编写大量重复且技术含量较低的代码;另一种是依赖于特定任务要求,需要开发人员查询文档或使用其他工具才能完成的代码编写工作.代码生成作为最直接辅助开发人员完成编码的工作受到学术界和工业界的广泛关注.让机器理解用户需求,自行完成程序编写也一直是软件工程领域重点关注的问题之一.近年来,随着深度学习在软件工程领域任务中的不断发展,尤其是预训练模型的引入使得代码生成任务取得了十分优异的性能.系统梳理当前基于深度学习的代码生成相关工作,并将目前基于深度学习的代码生成方法分为3类:基于代码特征的方法、结合检索的方法以及结合后处理的方法.第1类是指使用深度学习算法利用代码特征进行代码生成的方法,第2类和第3类方法依托于第1类方法进行改进.依次对每一类方法的已有研究成果进行系统的梳理、分析与总结.除此之外,汇总并分析已有的代码生成工作中常用的语料库与评估方法,以便于后续研究进行实验设计.最后,对代码生成方法研究进展进行总结,并针对未来值得关注的研究方向进行展望.

全文