删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

示例演化驱动的学生程序自动修复

本站小编 Free考研考试/2022-01-02

摘要:已有的程序自动化调试研究大多面向工业软件,而学生程序调试具有缺陷数多、类型复杂等特有难点问题,因此,针对学生程序设计应用背景,研究程序自动修复方法,利用模板示例程序指导补丁的演化.改进了遗传编程算法,包括适应度的计算、变异体的生成方式和变异位置及操作的选择方式,使其更加适合修复学生程序.提出了基于示例的静态错误定位方法,能够识别缺陷程序和参考程序差异和可能的变异操作,有效地缩小补丁的搜索空间以提高修复的准确性.提出了基于执行值序列的变量映射方法,以降低变异体的编译错误,提高修复的准确性.在此基础上,设计并实现了示例演化驱动的Java学生程序自动修复系统.实验结果表明,该方法可以修复含有多缺陷学生程序,对于所用的测试集,当学生程序只有1个~2个错误时,修复率将近100%;当含有3个缺陷时,修复率约为70%;当含有4个及以上缺陷时,修复率约为50%.



Abstract:Most existing program repair researches are oriented to industrial software. Student program debugging has many unique problems, such as multiple bugs and complex bug types. Therefore, according to the application background of student programming, the automatic repair method is studied, and template programs are used to guide the evolution of patches. Genetic programming algorithm has been improved, such as fitness calculation, mutants generation, and mutation position and operator selection, to make it more suitable for repairing student programs. A static fault location method based on sample programs is proposed, which identifies the difference between the defect program and the sample program and recognizes the possible mutation operators. It can effectively reduce the search space of the patch and improves the accuracy of the program repair. A variable mapping method based on execution value sequence is proposed to reduce compilation errors of mutants and improve the accuracy of program repair. On this basis, an example-evolution-driven system for repairing students' Java programs was designed and implemented. The experimental results show that the method can repair student programs with multiple bugs. For the test set, the repair rate is nearly 100% when the student programs have only 1~2 bugs. When there are 3 bugs, the repair rate is about 70%. When there are 4 or more bugs in the student programs, the repair rate is about 50%.



PDF全文下载地址:

http://jos.org.cn/jos/article/pdf/5716
相关话题/程序 空间 工业 自动化 遗传

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • C程序内存泄漏智能化检测方法
    摘要:内存泄漏在采用显式内存管理机制的C语言中是一种常见的代码缺陷,内存泄漏的检测方法目前主要是静态分析与动态检测.动态检测开销大,且高度依赖测试用例;静态分析目前被学术界和工业界广泛应用,但是存在大量误报,需要人工对检测结果进行确认.内存泄漏静态分析的误报通常是由于对指针、分支语句和全局变量分析的 ...
    本站小编 Free考研考试 2022-01-02
  • 程序自动修复:关键问题及技术
    摘要:程序自动修复技术能够有效地降低软件维护成本,是近年来学术研究的热点问题.待修复程序规约的刻画,对自动修复过程具有至关重要的作用.从规约的角度对程序自动修复问题和技术进行了分析梳理.从待修复程序是否具有完整的程序规约,将现有修复问题分为不完全规约、完全规约和半完全规约这3大类待修复问题.以3类抽 ...
    本站小编 Free考研考试 2022-01-02
  • 空间延迟/中断容忍网络的接触图路由研究综述
    摘要:基于覆盖协议和存储-携带-转发范式的延迟/中断容忍网络(delay/disruptiontolerantnetwork,简称DTN)被认为是应对空间环境挑战(如长延迟、间歇性连接等)的有效解决方案.接触图路由(contactgraphrouting,简称CGR)是一种利用空间DTN网络拓扑的先 ...
    本站小编 Free考研考试 2022-01-02
  • 程序理解:现状与未来
    摘要:程序理解是软件工程中的关键活动,在软件开发、维护、重用等任务中发挥着重要的作用.程序理解自软件工程出现以来,就一直是该领域的研究热点.随着软件应用的日益复杂和不断普及,程序理解研究的需求发生了新的变化,程序的自理解或自认知逐渐成为新的关注点,有必要对程序理解进行重新审视.从工程、学习和认知以及 ...
    本站小编 Free考研考试 2022-01-02
  • 程序分析研究进展
    摘要:在信息化时代,人们对软件的质量要求越来越高.程序分析是保障软件质量的重要手段之一,日益受到学术界和产业界的重视.介绍了若干基本程序分析技术(抽象解释、数据流分析、基于摘要的分析、符号执行、动态分析、基于机器学习的程序分析等),特别是最近10余年的研究进展.进而介绍了针对不同类型软件(移动应用、 ...
    本站小编 Free考研考试 2022-01-02
  • 基于切空间判别学习的流形降维算法
    摘要:在基于图像集的流形降维问题中,许多算法的核心思想都是把一个高维的流形直接降到一个维数相对较低、同时具有的判别信息更加充分的流形上.投影度量学习(projectionmetriclearning,简称PML)是一种Grassmann流形降维算法.该算法是基于投影度量,并且使用RCG(Rieman ...
    本站小编 Free考研考试 2022-01-02
  • SIMON不可能差分及零相关路径自动化搜索算法
    摘要:对于分组密码,不可能差分和零相关线性分析都是很重要的分析手段.通过研究非线性组件与(AND)的性质,首先得到用于刻画SIMON轮函数差分及线性传播特性的约束式,再基于布尔可满足约束问题(SAT),提出一种普适性不可能差分和零相关路径自动化搜索算法,并利用该算法搜索得到SIMON更多的不可能差分 ...
    本站小编 Free考研考试 2022-01-02
  • 基于双特征高斯混合模型和双约束空间变换的配准
    摘要:非刚性点集配准是当前多个领域中的一项重要研究问题.现今流行的配准算法通常使用基于单一特征的对应关系评估与包含单一约束条件的空间变换更新,而单特征与单约束限制了其配准效果与应用领域.提出了一种基于双特征高斯混合模型和双约束空间变换的非刚性点集配准算法.首先定义了双特征描述子,并用全局特征和局部特 ...
    本站小编 Free考研考试 2022-01-02
  • 基于目标空间划分的自适应多目标进化算法
    摘要:目前,多目标进化算法在众多领域具有极高的应用价值,是优化领域的研究热点之一.分析已有多目标进化算法在保持种群多样性方面的不足并提出一种基于解空间划分的自适应多目标进化算法(spacedivisionbasedadaptivemultiobjectiveevolutionaryalgorithm ...
    本站小编 Free考研考试 2022-01-02
  • 智能化的程序搜索与构造方法综述
    摘要:互联网、机器学习、人工智能等技术的迅速发展以及大量开源软件和开源社区的出现,给软件工程的发展带来了新的机遇和挑战.目前,在互联网上已经存在了数十亿行的各类程序代码,这些代码中存在着各种知识,尤其是众多已被广泛使用、高质量的软件代码,由此催生了利用大规模代码资源中蕴涵的众多知识进行智能化软件开发 ...
    本站小编 Free考研考试 2022-01-02