基本信息来源于合作网站,原文需代理用户跳转至来源网站获取       
摘要:
在计算机软件中,程序缺陷不可避免且极有可能造成重大损失.因此,尽早发现并排除程序中潜在的缺陷,是学术界和工业界的普遍共识.目前的程序缺陷自动修复方法大都遵循缺陷定位、修复候选项生成、选择及验证的流程,但在修复实际程序时存在修复率低、无法保证修复结果的正确性等问题.提出了一种基于程序合成的C/C++程序缺陷自动修复方法.首先,从满足相同规约的程序集中,通过人工整理的方式总结错误模式及其对应的修复方法,使用重写规则表达错误模式,在此基础上实现了基于重写规则和基于程序频谱的缺陷定位方法,得到程序中可能的缺陷位置;其次,基于重写规则,使用修复选项生成方法得到缺陷的修复选项,同时,通过深度学习的方式学习正确程序的书写结构,帮助预测错误程序错误点应有的语句结构,通过这两种方式提高候选项质量,进而提高修复率;最后,在选择验证过程中,使用程序合成的方法将样例程序作为约束,保证合成后代码的正确性.基于上述方法实现了原型工具AutoGrader,并在容易出错、缺陷典型的学生作业程序上进行了实验,结果显示,该方法对学生作业程序中的缺陷有着较高的修复率,同时也能保证修复后代码的正确性.
推荐文章
一种用C++动态扩展C#程序的方法
C#
C++
继承
动态扩展
混合编程
基于TI C6000系列DSP的C/C++程序优化技术
C6000
程序优化
软件流水
线性汇编
C++代码缺陷自动检测工具的研究与实现
静态分析
抽象语法树
缺陷检测
规则扩展
C++异常和资源自动回收
异常
对象
模板
资源回收
内容分析
关键词云
关键词热度
相关文献总数  
(/次)
(/年)
文献信息
篇名 C/C++程序缺陷自动修复与确认方法
来源期刊 软件学报 学科 工学
关键词 程序修复 程序合成 深度学习
年,卷(期) 2019,(5) 所属期刊栏目 智能化软件新技术专刊
研究方向 页码范围 1243-1255
页数 13页 分类号 TP311
字数 9585字 语种 中文
DOI 10.13328/j.cnki.jos.005729
五维指标
传播情况
(/次)
(/年)
引文网络
引文网络
二级参考文献  (0)
共引文献  (0)
参考文献  (5)
节点文献
引证文献  (0)
同被引文献  (0)
二级引证文献  (0)
1971(1)
  • 参考文献(1)
  • 二级参考文献(0)
1980(1)
  • 参考文献(1)
  • 二级参考文献(0)
2016(1)
  • 参考文献(1)
  • 二级参考文献(0)
2017(1)
  • 参考文献(1)
  • 二级参考文献(0)
2018(1)
  • 参考文献(1)
  • 二级参考文献(0)
2019(0)
  • 参考文献(0)
  • 二级参考文献(0)
  • 引证文献(0)
  • 二级引证文献(0)
研究主题发展历程
节点文献
程序修复
程序合成
深度学习
研究起点
研究来源
研究分支
研究去脉
引文网络交叉学科
相关学者/机构
期刊影响力
软件学报
月刊
1000-9825
11-2560/TP
16开
北京8718信箱
82-367
1990
chi
出版文献量(篇)
5820
总下载数(次)
36
总被引数(次)
226394
相关基金
国家自然科学基金
英文译名:the National Natural Science Foundation of China
官方网址:http://www.nsfc.gov.cn/
项目类型:青年科学基金项目(面上项目)
学科类型:数理科学
论文1v1指导