摘要
为了提高软件的开发效率,目前已出现应用人工智能技术进行智能化开发的趋势,如何理解程序语义是智能化开发中需要重点解决的问题.针对该问题,出现了一系列程序表示学习的研究,程序表示学习可以自动地从程序中学习有用的特征,将特征表示为低维稠密向量,高效地提取程序语义并使用于相应的下游任务.对程序表示学习的研究工作进行综述,介绍了主流的程序表示学习模型,包括基于图结构和基于token序列的程序表示学习框架.展示了程序表示学习技术在缺陷检测、缺陷定位、代码补全等任务上的应用,总结了程序表示学习的常用工具集和测试集.分析了程序表示学习未来需要应对的挑战.
- 单位