本发明专利技术公开了一种评估源程序的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:使用词法分析将源程序转换成二元式序列;使用语法分析将二元式序列转换成源程序的语法树;将源程序的语法树与存储的模板程序的语法树进行相似度对比,以对比结果作为源程序的评估结果。该实施方式克服了现有技术仅针对最终的计算结果进行评估,而不对计算过程进行评估的技术问题,进而达到全面的进行评估的技术效果,提高了评估的可靠性和科学性。
【技术实现步骤摘要】
一种自动评估的方法和装置
本专利技术涉及计算机
,尤其涉及一种自动评估的方法和装置。
技术介绍
机器自动评估是网络教学系统中的一个重要组成部分,不仅能为教学者提供反馈以确认学习者是否达到学习目标,且可以指导学习。目前,已有的机器自动评估所采用的方法主要是动态分析。现有的这些系统大多数都是针对Java、C/C++而设计的,为存储过程所设计的系统不多。存储过程作为一种高效率和高安全性的数据操作技术,是数据库技术教学中的一个重要部分,因此为存储过程设计出相应的评测系统是必要的。存储过程虽然也是一种编程语言,但其块结构特征又使其与其他过程语言有所区别,针对存储过程的特点,提出了一种存储过程相似性匹配的评估方法,以提高存储过程相似性匹配的效率和准确率。全国计算机等级考试用的NCRE评分系统支持包括C语言、VB语言、VFP、Java和C++在内的多种语言的自动评分。该系统对编程题目的评估采用的是动态分析方法,通过输入几组测试数据集进行测试,所以评估功能的准确与否取决于测试用例的设计。每个测试用例的输出结果都与正确结果做比较,从而评估出功能是否被实现。第一阶段为预处理,此阶段的主要工作是设置配置信息,包括测试用例信息、程序运行时限和评分方法等。第二阶段为编译,评估系统可以根据需要编写自己的编译器。这一阶段如果能生成可执行文件则继续下一个阶段,否则程序得零分。第三阶段是在测试用例上运行程序并评分。评分程序把提交的代码当成子进程来运行,监督子进程的运行状态和运行时间,当子进程结束时发出状态信号通知父进程测试用例已经全部完成并产生结果输出。根据输出结果和标准答案的比较就可以给出评分。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有技术实际是将最终的计算结果与正确结果进行对比,评估出的评估结果仅针对该计算结果,对于计算的过程以及输入的数据却并没有涉及。因此,受到计算过程和测试数据多样性的影响,会导致评估的结果准确性降低,不能实现科学的评估。
技术实现思路
有鉴于此,本专利技术实施例提供一种评估源程序的方法和装置,能够解决现有技术中无法对源程序做出准确、科学的评估的技术问题。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种评估源程序的方法。本专利技术实施例一种评估源程序的方法,该源程序用于实现数据库的存储过程,该方法包括:使用词法分析将源程序转换成二元式序列;使用语法分析将二元式序列转换成源程序的语法树;将源程序的语法树与存储的模板程序的语法树进行相似度对比,以对比结果作为源程序的评估结果。可选地,本专利技术的实施例使用词法分析将源程序转换成二元式序列,包括:将对应于存储过程的正则文法输入到词法分析器中,再根据该词法分析器将源程序的字符串转换成二元式序列。可选地,本专利技术的实施例使用语法分析将二元式序列转换成源程序的语法树,包括:将对应于存储过程的产生式输入到语法分析器中,再根据该语法分析器将二元式序列转换成源程序的语法树。可选地,本专利技术的实施例根据相似度计算公式将源程序的语法树与存储的模板程序的语法树进行相似度对比,公式为:其中,T1表示所述源程序的语法树,T2表示所述模板程序的语法树;|T1|是T1的节点数;|T2|是T2的节点数;δ(T1,T2)﹦min﹛γ(S)﹜,其中γ是一个编辑操作的代价函数,S是从T1到T2的一个编辑操作序列。可选地,本专利技术的实施例与终结符对应的γ取值为3,与非终结符对应的γ取值为1。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种评估源程序的装置。本专利技术实施例一种评估源程序的装置包括:第一转换模块,用于使用词法分析将源程序转换成二元式序列;第二转换模块,用于使用语法分析将二元式序列转换成源程序的语法树;处理模块,用于将源程序的语法树与存储的模板程序的语法树进行相似度对比,以对比结果作为源程序的评估结果。可选地,本专利技术实施的第一转换模块用于:将对应于存储过程的正则文法输入到词法分析器中,再根据该词法分析器将源程序的字符串转换成二元式序列。可选地,本专利技术实施的第二转换模块用于:将对应于存储过程的产生式输入到语法分析器中,再根据该语法分析器将二元式序列转换成源程序的语法树。可选地,本专利技术实施的处理模块根据相似度计算公式将源程序的语法树与存储的模板程序的语法树进行相似度对比,公式为:其中,T1表示所述源程序的语法树,T2表示所述模板程序的语法树;|T1|是T1的节点数;|T2|是T2的节点数;δ(T1,T2)﹦min﹛γ(S)﹜,其中γ是一个编辑操作的代价函数,S是从T1到T2的一个编辑操作序列。可选地,本专利技术实施与终结符对应的γ取值为3,与非终结符对应的γ取值为1。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种评估源程序的方法的电子设备。本专利技术实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例的评估源程序的方法。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种计算机可读介质。本专利技术实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例的评估源程序的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用将源程序的语法树与存储的模板程序的语法树进行相似度对比的技术手段,所以克服了现有技术仅针对最终结果进行评估,而不对计算过程进行评估的技术问题,进而达到全面的进行评估的技术效果,提高了评估的准确性和科学性,有利于对源程序进行全面的评估;通过研究存储过程的语言特点,提出适用于该语言抽象语法树的相似匹配算法,进而提高针对存储过程PL/SQL的静态的自动评估的方法。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是本专利技术实施例可以应用于其中的示例性系统架构图;图2是根据本专利技术实施例的评估源程序的方法的主要流程的示意图;图3是根据本专利技术实施例的评估源程序的主要流程示意图;图4是根据本专利技术实施例的词法分析的主要流程的示意图;图5是根据本专利技术实施例的生成语法树的主要流程的示意图;图6是根据本专利技术实施例的存储过程PL/SQL语法树的主要流程的示意图;图7是根据本专利技术实施例的相似性匹配的树形的示意图;图8是根据本专利技术实施例的评估源程序的装置的主要模块的示意图;图9是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1示出了可以应用本专利技术实施例的评估源程序的方法或评估源程序的装置的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通本文档来自技高网...
【技术保护点】
1.一种评估源程序的方法,所述源程序用于实现数据库的存储过程,其特征在于,该方法包括:使用词法分析将源程序转换成二元式序列;使用语法分析将所述二元式序列转换成所述源程序的语法树;将所述源程序的语法树与存储的模板程序的语法树进行相似度对比,以对比结果作为所述源程序的评估结果。
【技术特征摘要】
1.一种评估源程序的方法,所述源程序用于实现数据库的存储过程,其特征在于,该方法包括:使用词法分析将源程序转换成二元式序列;使用语法分析将所述二元式序列转换成所述源程序的语法树;将所述源程序的语法树与存储的模板程序的语法树进行相似度对比,以对比结果作为所述源程序的评估结果。2.根据权利要求1所述的方法,其特征在于,所述使用词法分析将源程序转换成二元式序列,包括:将对应于所述存储过程的正则文法输入到词法分析器中,再根据该词法分析器将所述源程序的字符串转换成二元式序列。3.根据权利要求1所述的方法,其特征在于,所述使用语法分析将所述二元式序列转换成所述源程序的语法树,包括:将对应于所述存储过程的产生式输入到语法分析器中,再根据该语法分析器将所述二元式序列转换成所述源程序的语法树。4.根据权利要求1所述的方法,其特征在于,根据相似度计算公式将所述源程序的语法树与存储的模板程序的语法树进行相似度对比,所述公式为:其中,T1表示所述源程序的语法树,T2表示所述模板程序的语法树;|T1|是T1的节点数;|T2|是T2的节点数;δ(T1,T2)﹦min﹛γ(S)﹜,其中γ是一个编辑操作的代价函数,S是从T1到T2的一个编辑操作序列。5.根据权利要求1或4任一项所述的方法,其特征在于,与终结符对应的γ取值为3,与非终结符对应的γ取值为1。6.一种评估源程序的装置,其特征在于,包括:第一转换模块,用于使用词法分析将源程序转换成二元式序列;第二转换模块,用于使用语法分析将所述二元式...
【专利技术属性】
技术研发人员:张亚芹,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。