软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2021年第11期:编程现场上下文深度感知的代码行推荐

发布日期:

作者:陶传奇,包盼盼,黄志球,周宇,张智轶

单位:陶传奇,南京航空航天大学 计算机科学与技术学院, 江苏 南京 211106;高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 211106;计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002311,包盼盼,南京航空航天大学 计算机科学与技术学院, 江苏 南京 21110602,黄志球,南京航空航天大学 计算机科学与技术学院, 江苏 南京 211106;高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 21110603,周宇,南京航空航天大学 计算机科学与技术学院, 江苏 南京 211106;高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 21110604,张智轶,南京航空航天大学 计算机科学与技术学院, 江苏 南京 211106;高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 21110605

关键词:编程现场;代码上下文;代码行;深度学习;RNN Encoder-Decoder

基金:国家重点研发计划(2018YFB1003900);国家自然科学基金(61602267,61402229);计算机软件新技术国家重点实验室基金(KFKT2018B19)

在软件开发的编程现场,有大量与当前开发任务相关的信息,比如代码上下文信息、用户开发意图等.如果能够根据已有的编程现场上下文给开发人员推荐当前代码行,不仅能够帮助开发人员更好地完成开发任务,还能提高软件开发的效率.而已有的一些方法通常是进行代码修复或者补全,又或者只是基于关键词匹配的搜索方法,很难达到推荐完整代码行的要求.针对上述问题,一种可行的解决方案是基于已有的海量源码数据,利用深度学习析取代码行的相关上下文因子,挖掘隐含的上下文信息,为精准推荐提供基础.因此,提出了一种基于深度学习的编程现场上下文深度感知的代码行推荐方法,能够在已有的大规模代码数据集中学习上下文之间潜在的关联关系,利用编程现场已有的源码数据和任务数据得到当前可能的代码行,并推荐Top-N给编程人员.代码行深度感知使用RNN Encoder-Decoder,该框架能够将编程现场已有的若干行上文代码行进行编码,得到一个包含已有代码行上下文信息的向量,然后根据该向量进行解码,得到预测的Top-N代码行输出.利用在开源平台上收集的大规模代码行数据集,对方法进行实验并测试,结果显示,该方法能够根据已有的上下文推荐相关的代码行给开发人员,Top-10的推荐准确率有60%左右,并且MRR值在0.3左右,表示用户满意的推荐项排在N个推荐结果中比较靠前的位置.

来源:2021年第11期

《软件学报》期刊编辑部

查看软件学报杂志2021年第11期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员