APP下载

基于动态检测与静态分析的自动评分方法研究

2021-12-01胡建鹏

智能计算机与应用 2021年8期
关键词:程序检测

薛 斌,胡建鹏

(上海工程技术大学 电子电气工程学院,上海 201620)

0 引言

C 语言是高校中工科专业的必修基础课程,也是国际上广为流行的高级程序设计语言。在C 语言程序设计课程中,考核学生知识掌握程度的重要手段之一就是对编程能力的考察,学生只有通过大量的上机代码实践,才能更好地理解C 语言程序的精髓。目前,高校普遍采用线上系统对C 语言编程题进行上机考试,但此类系统大多仅有通过与错误两种运行结果。只关注程序运行的结果,而忽视程序本身,这既不能合理地考察学生对知识的掌握程度,也不能让学生得到及时有效的反馈。为了对运行结果异常以及不能运行的学生程序进行评分,教师仍需要把学生编写的答案打印出来,进行人工评分,不仅效率低下,而且评分结果可能会受到阅卷老师的主观因素影响。

本文结合动态检测与静态分析策略,设计了一种新型的C 语言自动评分方法,并将该方法融合到线上实验系统中。首先,进行动态检测,利用KMP算法执行关键字匹配,若匹配相似度落入预期值区间,再将学生程序代码转换为可执行文件,通过预先设置的测试用例来驱动评分。若关键字匹配未通过、程序无法运行以及运行期间出现异常,则进行静态分析,对学生源程序代码和模板程序代码进行标准化,通过控制结构子树的匹配相似度来综合评分。

1 动态检测方案设计

基于动态检测的自动评分方法属于软件自动化测试方法[1],其核心的检测步骤如下:预先设置好测试用例作为输入数据;……

登录APP查看全文

猜你喜欢

程序检测
试论我国未决羁押程序的立法完善
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
小波变换在PCB缺陷检测中的应用
创卫暗访程序有待改进
恐怖犯罪刑事诉讼程序的完善