国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:付善庆,李征,赵瑞莲,郭俊霞
单位:付善庆,北京化工大学 信息科学与技术学院, 北京 10002911,李征,北京化工大学 信息科学与技术学院, 北京 10002902,赵瑞莲,北京化工大学 信息科学与技术学院, 北京 10002903,郭俊霞,北京化工大学 信息科学与技术学院, 北京 10002904
关键词:代码补全;程序语法特征;程序语义特征;特征结合;长距离依赖;深度学习
基金:国家自然科学基金(61702029,61672085,61872026)
在软件工程领域,代码补全是集成开发环境(integrated development environment,IDE)中最有用的技术之一,提高了软件开发效率,成为了加速现代软件开发的重要技术.通过代码补全技术进行类名、方法名、关键字等预测,在一定程度上提高了代码规范,降低了编程人员的工作强度.近年来,人工智能技术的发展促进了代码补全技术的发展.总体来说,智能代码补全技术利用源代码训练深度学习网络,从语料库学习代码特征,根据待补全位置的上下文代码特征进行推荐和预测.现有的代码特征表征方式大多基于程序语法,没有反映出程序的语义信息.同时,目前使用到的网络结构在面对长代码序列时,解决长距离依赖问题的能力依旧不足.因此,提出了基于程序控制依赖关系和语法信息结合共同表征代码的方法,并将代码补全问题作为一个基于时间卷积网络(time convolution network,TCN)的抽象语法树(abstract grammar tree,AST)节点预测问题,使得网络模型可以更好地学习程序的语法和语义信息,并且可以捕获更长范围的依赖关系.实验结果表明,该方法比现有方法的准确率提高了约2.8%.
来源:2022年第11期
《软件学报》期刊编辑部