关键词:
语法分析
正规表达式
编译原理
功能测试
摘要:
程序设计语言中的程序题自动阅卷是实现无纸化考试的关键和难点。目前应用的自动评分系统大多具有忽视考生程序的内部结构特征,评分结果不准确,不完全,缺乏柔性等缺点。虽然有许多专家学者致力于找出一种程序的中间表示形式,并以中间表示形式作为标准答案与考生程序进行匹配,但这种方法是将程序整体作为比较对象,也有失灵活性。通过研究国内外相关文献资料,本文提出将程序题的分数分解为四部分,即语法分、测试分、知识要点分和结果分。根据上述的分值结构,评分系统大致分为三个模块:
首先,对于可编译运行而且结果正确的考生程序,通过功能测试模块进行算法和程序功能的测试,结合测试结果,给出评分。
其次,对能编译运行但是结果错误的考生程序,通过知识要点评分模块对程序进行分析即把程序分成多个独立的知识要点模块,并用正规表达式描述,而后在考生程序中去搜索这些知识要点。
最后,对不能编译运行的程序,则需先用语法分析模块对其进行词法、语法分析,给出语法分;然后再进行知识要点分析即在考生程序中搜索知识要点,根据搜索结果给出程序知识要点分;本系统已进入测试阶段,初步实验结果证明该系统运行稳定,评分标准能够统一,与人工评分的结果大致相符,评分过程更注重考生程序的内部结构,提高了评阅过程的公正性、合理性和准确性。