C/C++程序缺陷自动修复与确认方法

作者:周风顺; 王林章; 李宣东

摘要:在计算机软件中,程序缺陷不可避免且极有可能造成重大损失.因此,尽早发现并排除程序中潜在的缺陷,是学术界和工业界的普遍共识.目前的程序缺陷自动修复方法大都遵循缺陷定位、修复候选项生成、选择及验证的流程,但在修复实际程序时存在修复率低、无法保证修复结果的正确性等问题.提出了一种基于程序合成的C/C++程序缺陷自动修复方法.首先,从满足相同规约的程序集中,通过人工整理的方式总结错误模式及其对应的修复方法,使用重写规则表达错误模式,在此基础上实现了基于重写规则和基于程序频谱的缺陷定位方法,得到程序中可能的缺陷位置;其次,基于重写规则,使用修复选项生成方法得到缺陷的修复选项,同时,通过深度学习的方式学习正确程序的书写结构,帮助预测错误程序错误点应有的语句结构,通过这两种方式提高候选项质量,进而提高修复率;最后,在选择验证过程中,使用程序合成的方法将样例程序作为约束,保证合成后代码的正确性.基于上述方法实现了原型工具AutoGrader,并在容易出错、缺陷典型的学生作业程序上进行了实验,结果显示,该方法对学生作业程序中的缺陷有着较高的修复率,同时也能保证修复后代码的正确性.

分类:
  • 期刊
  • >
  • 自然科学与工程技术
  • >
  • 信息科技
  • >
  • 计算机软件及计算机应用
收录:
  • 上海图书馆馆藏
  • CSCD 中国科学引文数据库来源期刊(含扩展版)
  • 知网收录(中)
  • 北大期刊(中国人文社会科学期刊)
  • 维普收录(中)
  • 国家图书馆馆藏
  • 万方收录(中)
  • SA 科学文摘(英)
  • Pж(AJ) 文摘杂志(俄)
  • EI 工程索引(美)
  • JST 日本科学技术振兴机构数据库(日)
  • 统计源期刊(中国科技论文优秀期刊)
关键词:
  • 程序修复
  • 程序合成
  • 深度学习

注:因版权方要求,不能公开全文,如需全文,请咨询杂志社

期刊名称:软件学报

期刊级别:北大期刊

期刊人气:4838

杂志介绍:
主管单位:中国科学院
主办单位:中国科学院软件研究所;中国计算机学会
出版地方:北京
快捷分类:计算机
国际刊号:1000-9825
国内刊号:11-2560/TP
邮发代号:82-367
创刊时间:1990
发行周期:月刊
期刊开本:B5
下单时间:1-3个月
复合影响因子:2.86
综合影响因子:2.83