上下文敏感的学生程序自动修复方法
发布时间:2023-04-01 17:34
近年来,在线学习环境日益普及,逐渐作为一个常见手段应用在大学生程序设计教学中,但已有的在线编程系统只能判别提交程序的正误,不能给出错误原因并进行修正。因此,本文针对高校设立的Java程序设计课程的代码,研究了自动程序修复在学生程序中的应用。不同于工业界的缺陷程序具有近似正确、补丁小及大部分测试用例可通过等特点,含有缺陷的学生程序具有错误密度大、缺少关键语句等特点。工业界方法通过对比测试用例通过情况实现修复功能,但学生程序可能一个测试用例也不能通过,因此工业界方法并不适用于修复学生程序。学生程序代码规模较小,同一个题目作答人数多,可以采用提供模板的方法进行修复,从正确的学生程序中挖掘模板,使模板程序更具有多样性。但一个程序设计问题会存在多种解决方案,学生给出的答案在实现算法、正确性以及语法使用上都有可能存在差异,选择不同的模板程序作为示例程序,会直接影响缺陷程序修复的正确性和修复率。本课题使用了从在线编程系统中收集的大量正确的模板程序,这些数据中蕴含着“编程智慧”,可以为自动程序修复提供丰富的信息。针对上述问题,本文完成了以下工作:本文提出了模板程序的挖掘方法,解决了从大量实现相同功能的...
【文章页数】:90 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
第1章 绪论
1.1 课题研究的背景和意义
1.2 国内外研究现状
1.2.1 程序自动修正方法国内外研究现状
1.2.2 国内外研究现状分析
1.3 本文研究内容及章节安排
第2章 模板程序的挖掘方法
2.1 引言
2.2 研究框架
2.3 数据流和控制流分析
2.4 模板程序的特征提取方法和编码
2.4.1 变量特征
2.4.2 基本块特征
2.4.3 变量和基本块之间的关系特征
2.4.4 矩阵编码
2.5 模板程序的聚类
2.5.1 特征矩阵的分析策略
2.5.2 聚类算法介绍
2.6 示例程序的选取方法
2.7 实验结果与分析
2.7.1 研究问题
2.7.2 实验设置
2.7.3 实验结果与分析
2.8 本章小结
第3章 动态执行和上下文分析相结合的变量映射方法
3.1 引言
3.2 研究框架
3.3 抽象语法树
3.4 变量映射方法
3.4.1 基于程序动态执行的变量映射方法
3.4.2 基于上下文信息的变量映射方法
3.5 变量替换
3.6 实验结果与分析
3.6.1 研究问题
3.6.2 实验设置
3.6.3 实验结果分析
3.7 本章小结
第4章 上下文敏感的学生程序自动修复方法
4.1 引言
4.2 遗传编程算法的研究
4.2.1 遗传算法
4.2.2 遗传编程算法
4.2.3 基于遗传编程的修复算法:Gen Prog
4.3 基于示例演化的JAVA学生程序错误自动修正
4.4 研究框架
4.5 交叉策略的改进
4.6 变异体选择算法的改进
4.7 变异语句的选择算法
4.8 实验结果与分析
4.8.1 研究问题
4.8.2 实验设置
4.8.3 实验结果分析
4.9 本章小结
结论
参考文献
致谢
本文编号:3777569
【文章页数】:90 页
【学位级别】:硕士
【文章目录】:
摘要
Abstract
第1章 绪论
1.1 课题研究的背景和意义
1.2 国内外研究现状
1.2.1 程序自动修正方法国内外研究现状
1.2.2 国内外研究现状分析
1.3 本文研究内容及章节安排
第2章 模板程序的挖掘方法
2.1 引言
2.2 研究框架
2.3 数据流和控制流分析
2.4 模板程序的特征提取方法和编码
2.4.1 变量特征
2.4.2 基本块特征
2.4.3 变量和基本块之间的关系特征
2.4.4 矩阵编码
2.5 模板程序的聚类
2.5.1 特征矩阵的分析策略
2.5.2 聚类算法介绍
2.6 示例程序的选取方法
2.7 实验结果与分析
2.7.1 研究问题
2.7.2 实验设置
2.7.3 实验结果与分析
2.8 本章小结
第3章 动态执行和上下文分析相结合的变量映射方法
3.1 引言
3.2 研究框架
3.3 抽象语法树
3.4 变量映射方法
3.4.1 基于程序动态执行的变量映射方法
3.4.2 基于上下文信息的变量映射方法
3.5 变量替换
3.6 实验结果与分析
3.6.1 研究问题
3.6.2 实验设置
3.6.3 实验结果分析
3.7 本章小结
第4章 上下文敏感的学生程序自动修复方法
4.1 引言
4.2 遗传编程算法的研究
4.2.1 遗传算法
4.2.2 遗传编程算法
4.2.3 基于遗传编程的修复算法:Gen Prog
4.3 基于示例演化的JAVA学生程序错误自动修正
4.4 研究框架
4.5 交叉策略的改进
4.6 变异体选择算法的改进
4.7 变异语句的选择算法
4.8 实验结果与分析
4.8.1 研究问题
4.8.2 实验设置
4.8.3 实验结果分析
4.9 本章小结
结论
参考文献
致谢
本文编号:3777569
本文链接:https://www.wllwen.com/jiaoyulunwen/gaodengjiaoyulunwen/3777569.html