主页期刊介绍编委会编辑部服务介绍道德声明在线审稿编委办公English
2020-2021年专刊出版计划 微信服务介绍 最新一期:2020年第10期
     
在线出版
各期目录
纸质出版
分辑系列
论文检索
论文排行
综述文章
专刊文章
美文分享
各期封面
E-mail Alerts
RSS
旧版入口
中国科学院软件研究所
  
投稿指南 问题解答 下载区 收费标准 在线投稿
陶传奇,包盼盼,黄志球,周宇,张智轶.编程现场上下文深度感知的代码行推荐.软件学报,0,(0):0
编程现场上下文深度感知的代码行推荐
Code Line Recommendation Based on Deep Context-Awareness of Onsite Programming
投稿时间:2018-12-18  修订日期:2020-01-06
DOI:10.13328/j.cnki.jos.006059
中文关键词:  编程现场  上下文  代码行  深度学习  RNN Encoder-Decoder
英文关键词:onsite programming  source code context  code line  deep learning  RNN Encoder-Decoder
基金项目:国家重点研发计划项目(2018YFB1003900);国家自然科学基金(61602267,61402229);计算机软件新技术国家重点实验室基金(KFKT2018B19)
作者单位E-mail
陶传奇 南京航空航天大学 计算机科学与技术学院, 江苏 南京 211100
高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 211100
计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023 
taochuanqi@nuaa.edu.cn 
包盼盼 南京航空航天大学 计算机科学与技术学院, 江苏 南京 211100  
黄志球 南京航空航天大学 计算机科学与技术学院, 江苏 南京 211100
高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 211100 
 
周宇 南京航空航天大学 计算机科学与技术学院, 江苏 南京 211100
高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 211100 
 
张智轶 南京航空航天大学 计算机科学与技术学院, 江苏 南京 211100
高安全系统的软件开发与验证技术工信部重点实验室(南京航空航天大学), 江苏 南京 211100 
 
摘要点击次数: 36
全文下载次数: 25
中文摘要:
      在使用程序设计语言编写程序时,代码行之间通常存在一定的上下文关联关系.如果能根据已有的编程现场上下文给开发人员推荐当前代码行,不仅能够帮助开发人员更好地完成开发任务,还能提高软件开发的效率.而已有的一些方法,通常是进行代码修复或者补全,又或者只是基于关键词匹配的搜索方法,很难达到推荐完整代码行的要求.近年来,智能化软件开发引起了学术界和工业界的广泛关注.针对上述问题,一种可行的解决方案是基于已有的海量源码数据,利用深度学习析取代码行的相关上下文因子,挖掘隐含上下文信息,为精准推荐提供基础.因此,本文提出一种基于深度学习的编程现场上下文深度感知的代码行推荐方法,能够在已有的大规模代码数据集中学习上下文之间潜在的关联关系,利用编程现场已有的源码数据和任务数据得到当前可能的代码行,并推荐Top-N给编程人员.代码行深度感知使用RNN Encoder-Decoder,该框架能够将编程现场已有的若干行上文代码行进行编码,得到一个包含已有代码行上下文信息的向量,然后根据该向量进行解码,得到预测的Top-N代码行输出.我们利用在开源平台上收集的大规模代码行数据集,对方法进行实验并测试,结果显示,本方法能够根据已有的上下文推荐相关的代码行给开发人员,Top-10的推荐准确率有60%左右,并且MRR值在0.3左右,表示用户满意的推荐项排在N个推荐结果中比较靠前的位置,方法在两个衡量指标上表现较好.
英文摘要:
      With the advance of intelligent learning techniques applied in diverse fields in software engineering, intelligent software development attracts increasing global attention. For various programming codes, there usually exist contextual relationships explicitly or implicitly among code lines. If the next code line or lines can be recommended to program developers according to the existing code lines, then it will not only help the developer to complete the development task better, but also improve the efficiency of software development. However, most existing approaches only focus on code repair or completion, which seldom considers how to meet the demand of recommending code lines based on contextual information. To solve this problem, a feasible solution is using deep learning methods to extract the relevant context factors of code lines through mining hidden context information based on the existing massive source data. Therefore, this paper proposes a novel approach based on deep learning for onsite programming. In this approach, the contextual relationships among various code lines are learned from existing large-scale code data sets and then Top-N code lines are recommended to programmers. The approach utilizes the well-known RNN Encoder-Decoder framework, which can encode several lines of code to a vector with context-aware information, and then obtain new code lines based on the context vector. Finally, the approach is empirically evaluated with a large-scale code line data set collected from the open source platform. The study results show that the proposed approach can recommend the relevant code lines to developers according to the existing context, and the accuracy value is approaching to 60%. In addition, the MRR value is about 0.3, indicating that the recommended items are ranked in the top of the N recommended results.
HTML  下载PDF全文  查看/发表评论  下载PDF阅读器
 

京公网安备 11040202500064号

主办单位:中国科学院软件研究所 中国计算机学会 京ICP备05046678号-4
编辑部电话:+86-10-62562563 E-mail: jos@iscas.ac.cn
Copyright 中国科学院软件研究所《软件学报》版权所有 All Rights Reserved
本刊全文数据库版权所有,未经许可,不得转载,本刊保留追究法律责任的权利