欢迎来到天天文库
浏览记录
ID:32044918
大小:2.26 MB
页数:74页
时间:2019-01-30
《程序作业的等价测评技术的分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、摘要摘要程序的等价测评技术在当今软件领域有着广泛的应用范围,在计算机学科基础教育领域中,如程序作业的测评、程序设计的在线考试、代码抄袭判定等。国内外比较常见的有基于程序属性、基于抽象语法树的方法来对程序进行等价评判,但两种测评方法都有其不足之处,固定的使用一种方法来对风格迥异的程序作业进行测评时,取得的效果往往并不理想。本文介绍了程序属性理论知识,重点研究了基于抽象语法树和基于程序依赖图的程序度量技术,对其优缺点进行了分析,归纳了程序作业的特点,在此基础上提出了一种依据程序属性自动选择适合该程序作业评判的模型,并进行了数据分析
2、,以人工评判为标准,该模型取得了较好的效果。本文所做的具体工作如下:首先,对基于抽象语法树的测评方法进行了改进。依靠Antlr平台,在掌握抽象语法树生成规则上,编写了生成抽象语法树的语法文件,同时对C语言的控制语句和表达式进行了标准化,最后产生标准化的抽象语法树。在遍历抽象语法树后,对所生成的代码序列做了优化处理,如提出简化码、存储优化、删除叶子节点等,再结合代码序列以及Needleman-Wunsch和Smith-Waterman算法特点,综合运用这两种算法对代码序列进行匹配程度的计算,从而得出两程序的等价度。其次,引入基于
3、程序依赖图的方法来对程序作业进行测评。在理解程序依赖图的原理基础上,对C语言中的关键控制语句做了程序流图分析,结合程序作业特点,重点分析了程序依赖图如何解决作业程序中的冗余代码、语句次序打乱等问题,并给出了基于程序依赖图判定代码等价的实现思想及说明。再次,给出了系统的总体设计框架,然后用两个程序作业进行了实例分析,在此基础上通过分析各测评方法的优缺点,提出了一种依据程序属性自动选择测评方法的模型,通过实验数据对该模型进行了分析比对,与人工判定为标准相比较,数据分析结果表明该模型对程序作业测评具有较好的效果。最后,本文对所做的研
4、究和工作进行了全面总结,针对已有工作中的不足之处,提出了进一步的研究展望。关键词:程序等价;自动测评;程序度量广东工业大学硕士学位论文ⅡABSTRACTPrograms’equivalenceAssessmenttechnologyhasbeenwidelyappliedincurrentsoftwarefield,suchasauto.assessmentforstudents’programexercise,onlinetest,codeplagiarismandSOon.Sofar,researchforprograme
5、xercises’automaticjudgedbysystembothatprogramstructureandsemanticleveliscomparativelyrare.BasedonprogramattributesyntactictreemethodispopularlyUSed,butmerelytanglechangefulprogramexersicebyonefix酣methodisweakandtheresultisnotsatiSfied.Thethesisintroducedthetheoryofp
6、rogramattribute,delvedintoprogramassessmenttechniquesbasedonabstractsyntactictreeandprogramdependencegraph,andanalyseeachoftheiradvantageanddisadvantage,concludetheircharacteristics.Basedonabovework,weproposedanewsystemwhichisabletoauto-matictochooseassessmentmethod
7、accordingtotheprogram’Sattribute,ithasbeenverifiedandgainabetterresultcomparedtomanualjudge.Firstly,wehaveconductedbetterresearchtowardassessmentmethodbasedonAST.BymasteringtherulesofAntkwebuildthegrammarofgeneratingtheAST,atthemeantimewenormanizethecontrolstatement
8、andsomeotherexpressionsinClanguage,resultingnormalizedAST.ThenwewalkingtheAST,觚dd0son圮optimizationjobtothecodesequence,suchassimplifiedcod
此文档下载收益归作者所有