国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:杨泽洲,陈思榕,高翠芸,李振昊,李戈,吕荣聪
单位:杨泽洲,哈尔滨工业大学(深圳) 计算机科学与技术学院, 广东 深圳 51805511,陈思榕,哈尔滨工业大学(深圳) 计算机科学与技术学院, 广东 深圳 51805502,高翠芸,哈尔滨工业大学(深圳) 计算机科学与技术学院, 广东 深圳 51805503,李振昊,华为技术有限公司, 广东 深圳 51812904,李戈,北京大学 信息科学技术学院, 北京 10087105,吕荣聪,香港中文大学 计算机与工程系, 香港 9990706
关键词:代码生成;深度学习;代码检索;后处理;机器翻译
基金:国家重点研发计划(2022YFB3103900);国家自然科学基金(62002084,62192733,62192731,61751210,62072007,61832009,62192730);广东省自然科学基金面上项目(2023A1515011959);深圳市基础研究专项面上项目(JCYJ20220531095214031);香港研究资助局项目(CUHK14210920)
关注根据自然语言描述生成相关代码片段的代码生成(code generation)任务. 在软件开发过程中, 开发人员常常会面临两种情形. 一种是通用功能的实现, 需要开发人员编写大量重复且技术含量较低的代码; 另一种是依赖于特定任务要求, 需要开发人员查询文档或使用其他工具才能完成的代码编写工作. 代码生成作为最直接辅助开发人员完成编码的工作受到学术界和工业界的广泛关注. 让机器理解用户需求, 自行完成程序编写也一直是软件工程领域重点关注的问题之一. 近年来, 随着深度学习在软件工程领域任务中的不断发展, 尤其是预训练模型的引入使得代码生成任务取得了十分优异的性能. 系统梳理当前基于深度学习的代码生成相关工作, 并将目前基于深度学习的代码生成方法分为3类: 基于代码特征的方法、 结合检索的方法以及结合后处理的方法. 第1类是指使用深度学习算法利用代码特征进行代码生成的方法, 第2类和第3类方法依托于第1类方法进行改进. 依次对每一类方法的已有研究成果进行系统的梳理、 分析与总结. 除此之外, 汇总并分析已有的代码生成工作中常用的语料库与评估方法, 以便于后续研究进行实验设计. 最后, 对代码生成方法研究进展进行总结, 并针对未来值得关注的研究方向进行展望.
来源:2024年第2期
《软件学报》期刊编辑部