基于抽象语法树的C编程题自动评分方法研究及应用
发布时间:2021-07-11 00:23
随着计算机技术的飞速发展,互联网+教育深刻地影响着教育教学方式和课程考试方式。编程题的自动评分是程序设计类课程在线考试中的一个重大需求,实现编程题的在线实际测试是程序设计语言课程考试的最有效形式。由于程序设计题主观因素强、解决方式多、评分标准不完善,因此,如何实现高效合理的编程题自动评分,一直是程序设计类课程在线考试领域研究的难点和热点问题。基于对编程题评测特点的研究,本文依据人工评分思想,设计了一个改进的动静结合评分模型。该模型的动态评分部分依赖于POJ(Peking Online Judge)内核实现,静态评分部分基于抽象语法树实现。改进的动静结合评分模型依据学生程序编译是否通过,分别对学生程序应用不同的评分规则,同时加入了程序是否满足要求的知识点评测。对编译通过的学生程序同时进行动态评分和基于抽象语法树的静态评分。对于编译未通过的学生程序,先按照预先设置的评分规则扣除语法分,之后只进行基于抽象语法树的静态评分。研究并实现了基于抽象语法树的C编程题静态分析方法,该方法首先借助GCC编译命令生成抽象语法树(Abstract Syntax Tree,AST),并依据本文给出的抽象语法树...
【文章来源】:西安理工大学陕西省
【文章页数】:81 页
【学位级别】:硕士
【部分图文】:
抽象语法树的预处理总流程图
ark[j] ==0 && useful_mark[s] ==1 thens] == 1;‘@’,pos+1); //找到下一个子节点为有用或者无用,不在有未知节点重新标记expr”);//找到函数调用节点 thenthen; //将有用的节点全部存入 nodeL1 中言加密程序为例,生成其对应的 GCC 文本抽到了规范化的文本抽象语法树。C 语言加密程
图 2-4 GCC 生成的文本 AST 部分节点信息Figure 2-4 GCC generated text AST part node information图 2-5 冗余处理后的文本 AST 部分节点信息Figure 2-5 Redundant processed text AST part node information2.3.2 重建处理经过冗余处理后得到的有用节点不连续,将不利于后续对节点的识别及存储,因此,需要对这些有用节点的编号进行哈希(Hash)变换,使节点号连续[46]。此外,由于所筛选出
【参考文献】:
期刊论文
[1]基于FC-KNN的C语言程序自动评分算法[J]. 李亭葳,刘新,白王梓松,李梦磊. 计算机应用与软件. 2018(09)
[2]基于最小子程序匹配的C语言自动评分算法研究[J]. 朱林琴,刘新,张辉,李亭葳,郭炳元. 中国教育信息化. 2017(17)
[3]一种优化GCC抽象语法树的方法[J]. 赵彦博,张星,周毅楷,邹德昊. 电子技术与软件工程. 2017(06)
[4]浅析面向学生自主学习的C语言程序设计实践教学支撑环境[J]. 苏小红,王甜甜,赵玲玲. 工业和信息化教育. 2017(01)
[5]自动阅卷系统中编程题的解决方法[J]. 周松. 中国信息技术教育. 2016(23)
[6]面向大规模在线开放课程的编程题多特征综合自动评分方法[J]. 刘月霞,牛志尧,吴宁. 西安交通大学学报. 2016(10)
[7]编程题综合评分方法的研究[J]. 李郴,史国峰. 计算机与网络. 2016(06)
[8]基于Web的在线判题系统设计与实现[J]. 蔡崇超. 软件导刊. 2016(03)
[9]基于多种技术的混合式程序代码抄袭检测方法[J]. 杨超. 计算机工程与应用. 2016(18)
[10]基于图文法的程序流程图与源代码自动转换[J]. 朱云,曾晓勤,朱宁,刘禹锋. 计算机工程与科学. 2015(05)
硕士论文
[1]基于web的程序在线评测方法的研究[D]. 刘峥.哈尔滨理工大学 2018
[2]主观编程题自动阅卷算法的研究与实现[D]. 王正.东华理工大学 2017
[3]C语言编程题在线评测系统的设计与研究[D]. 臧双媛.北京交通大学 2017
[4]动静态结合的程序自动评阅技术研究及系统实现[D]. 唐思娩.四川师范大学 2017
[5]C语言在线考试系统开发及关键技术的研究[D]. 曹亚妮.西安理工大学 2016
[6]大规模编程题在线评判技术研究[D]. 黄洪波.华南农业大学 2016
[7]Open edX程序设计题判分系统的设计与实现[D]. 刘平.新疆农业大学 2015
[8]基于抽象语法树的软件语义分析方法研究[D]. 王莉莉.哈尔滨工程大学 2014
[9]基于语义理解与运行分析的程序题自动评分算法研究[D]. 刘天蓝.湖南师范大学 2013
[10]基于Windows消息机制的VB编程题评分系统的研究与应用[D]. 付亚臣.大连海事大学 2012
本文编号:3276948
【文章来源】:西安理工大学陕西省
【文章页数】:81 页
【学位级别】:硕士
【部分图文】:
抽象语法树的预处理总流程图
ark[j] ==0 && useful_mark[s] ==1 thens] == 1;‘@’,pos+1); //找到下一个子节点为有用或者无用,不在有未知节点重新标记expr”);//找到函数调用节点 thenthen; //将有用的节点全部存入 nodeL1 中言加密程序为例,生成其对应的 GCC 文本抽到了规范化的文本抽象语法树。C 语言加密程
图 2-4 GCC 生成的文本 AST 部分节点信息Figure 2-4 GCC generated text AST part node information图 2-5 冗余处理后的文本 AST 部分节点信息Figure 2-5 Redundant processed text AST part node information2.3.2 重建处理经过冗余处理后得到的有用节点不连续,将不利于后续对节点的识别及存储,因此,需要对这些有用节点的编号进行哈希(Hash)变换,使节点号连续[46]。此外,由于所筛选出
【参考文献】:
期刊论文
[1]基于FC-KNN的C语言程序自动评分算法[J]. 李亭葳,刘新,白王梓松,李梦磊. 计算机应用与软件. 2018(09)
[2]基于最小子程序匹配的C语言自动评分算法研究[J]. 朱林琴,刘新,张辉,李亭葳,郭炳元. 中国教育信息化. 2017(17)
[3]一种优化GCC抽象语法树的方法[J]. 赵彦博,张星,周毅楷,邹德昊. 电子技术与软件工程. 2017(06)
[4]浅析面向学生自主学习的C语言程序设计实践教学支撑环境[J]. 苏小红,王甜甜,赵玲玲. 工业和信息化教育. 2017(01)
[5]自动阅卷系统中编程题的解决方法[J]. 周松. 中国信息技术教育. 2016(23)
[6]面向大规模在线开放课程的编程题多特征综合自动评分方法[J]. 刘月霞,牛志尧,吴宁. 西安交通大学学报. 2016(10)
[7]编程题综合评分方法的研究[J]. 李郴,史国峰. 计算机与网络. 2016(06)
[8]基于Web的在线判题系统设计与实现[J]. 蔡崇超. 软件导刊. 2016(03)
[9]基于多种技术的混合式程序代码抄袭检测方法[J]. 杨超. 计算机工程与应用. 2016(18)
[10]基于图文法的程序流程图与源代码自动转换[J]. 朱云,曾晓勤,朱宁,刘禹锋. 计算机工程与科学. 2015(05)
硕士论文
[1]基于web的程序在线评测方法的研究[D]. 刘峥.哈尔滨理工大学 2018
[2]主观编程题自动阅卷算法的研究与实现[D]. 王正.东华理工大学 2017
[3]C语言编程题在线评测系统的设计与研究[D]. 臧双媛.北京交通大学 2017
[4]动静态结合的程序自动评阅技术研究及系统实现[D]. 唐思娩.四川师范大学 2017
[5]C语言在线考试系统开发及关键技术的研究[D]. 曹亚妮.西安理工大学 2016
[6]大规模编程题在线评判技术研究[D]. 黄洪波.华南农业大学 2016
[7]Open edX程序设计题判分系统的设计与实现[D]. 刘平.新疆农业大学 2015
[8]基于抽象语法树的软件语义分析方法研究[D]. 王莉莉.哈尔滨工程大学 2014
[9]基于语义理解与运行分析的程序题自动评分算法研究[D]. 刘天蓝.湖南师范大学 2013
[10]基于Windows消息机制的VB编程题评分系统的研究与应用[D]. 付亚臣.大连海事大学 2012
本文编号:3276948
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3276948.html