国家自然科学基金(60673035)
- 作品数:11 被引量:71H指数:4
- 相关作者:苏小红马培军王甜甜王宇颖郭全萍更多>>
- 相关机构:哈尔滨工业大学更多>>
- 发文基金:国家自然科学基金国家教育部博士点基金黑龙江省新世纪高等教育教学改革工程项目更多>>
- 相关领域:自动化与计算机技术更多>>
- 面向综合实践能力考核的C语言编程考试自动评分系统被引量:18
- 2010年
- 如何利用计算机快速、准确地考核学生的编程实践能力,实现编程题的自动评分,成为计算机辅助教学领域的一个研究热点。针对现有系统要么只能对客观题进行自动评分,要么只能对没有任何语法错误的编程题按照运行结果的正误进行自动评分的问题,从理解、分析程序源代码的角度,设计实现了基于程序理解的C语言编程题自动评分系统,介绍了该系统的体系结构、关键技术、评分策略、系统特点、应用效果以及推广情况。
- 苏小红王宇颖王甜甜王宽全
- 关键词:实践教学自动评分
- 支持多程序语言的静态信息提取方法被引量:4
- 2011年
- 为了满足代码分析对多语言静态信息提取的需求,克服当前构建单语言提取重用率低、过程复杂等不足,采用直接修改GCC特定解析阶段源代码的方法建立统一的提取接口.针对所需静态信息的不同,按GCC内部机制,提出了运行改入点与内部辅助函数重用相结合的提取方法,具体包括类型和函数声明信息的采集、函数体内程序语句的遍历以及多语言统一中间表示的获取,重用了GCC内部高质量代码,从而降低了构建静态信息提取所需的重复开销.通过对比试验表明该方法程序语言解析能力稳定健壮且效率高,能够直接提取大型开源程序的静态信息.
- 逄龙王甜甜苏小红马培军
- 关键词:静态信息GCC编译器
- 程序标准化转换中的指针分析算法研究被引量:5
- 2009年
- 针对已有指针分析算法的程序中间表示不能充分表示程序的语法结构与语义,而导致不适合应用于程序标准化转换的问题,提出基于控制依赖树的流敏感和上下文敏感的过程间指针分析算法.将程序表示为控制依赖树,改进指向表示法用以表示指针别名,在此基础上定义数据流公式,对控制依赖树进行流敏感和上下文敏感的指针分析.实验结果表明,该算法的准确性高于Emami指针分析算法的准确性,并且应用于程序标准化时可显著提高代码多样化消除率.
- 王甜甜苏小红马培军
- 关键词:指针别名
- 从GCC的AST文本提取C源程序静态信息的方法被引量:2
- 2010年
- 为了能够正确的分析源程序的控制依赖关系和数据依赖关系,以便在此基础上进行程序切片及冗余代码和重复代码检测,提出一种利用GCC抽象语法树(AST)文本来提取源程序静态信息的方法.首先,对GCCAST文本进行标准化及消除文本中与控制流分析和数据流分析无关的结点信息;其次,构建控制依赖子图;同时如果需要数据流分析,在控制依赖子图的基础上构建控制流图,在控制流图的基础上构建数据流子图;最后通过引入过程间分析来完善系统依赖图.实验结果表明,这种方法基本能正确的分析源程序的控制依赖和数据依赖关系,具有更好的适应性和灵活性.
- 封战胜苏小红马培军
- 关键词:程序静态分析AST系统依赖图
- Multiagent系统通讯及单元可靠性综合评测
- 2011年
- 为了更准确的评测Multiagent系统可靠性,提出了将通讯可靠性、单元可靠性及系统拓扑结构都考虑在评测过程中的综合评测方法.该方法概括出Multiagent系统的结构,釆用基于马尔可夫过程的方法,分析通讯可靠性、单元可靠性等因素对集中式、分布式及联邦式Multiagent系统可靠性的影响,并给出了系统可靠性评测模型.仿真结果表明,该方法能够将复杂系统的可靠性评测问题分解为简单的形式.针对各分解后的结构进行评测,进一步得到了整个系统的可靠性.
- 郭勇马培军苏小红
- 关键词:可靠性评测
- C程序隐式规则自动提取与反例检测
- 2013年
- 提出一种通用且高效的隐式规则自动提取与反例检测方法,使用频繁闭合项集挖掘技术挖掘包含多种程序元素的编程模式,然后由编程模式产生编程规则;引入正序规则的概念,以避免从同一个编程模式中产生多个冗余规则.在此基础上,提出一种高效的反例检测算法检测违反规则的程序片段.实验结果表明,该方法能够自动提取程序中存在的隐式编程规则,并快速有效地检测违反规则的反例.
- 禹振苏小红王甜甜马培军
- 关键词:软件缺陷检测
- 基于搜索的程序切片方法在程序内聚度分析中的应用
- 2010年
- 将基于搜索的程序切片技术应用到程序内聚度分析中,在程序的所有可能的切片集合中搜索非冗余切片的集合,用于程序的内聚度度量,通过实验,验证了非冗余切片的集合用于程序内聚度度量方面的可行性,同时,对比分析了遗传搜索算法在适应度函数调整前后的性能,证明了适应度函数调整的必要性。
- 孙鹤苏小红马培军
- 关键词:程序切片
- 基于程序理解的编程题自动评分方法被引量:36
- 2009年
- 针对传统的编程题自动评分方法没有考虑学生程序是怎样实现编程任务的,以及不能从程序文本的语法结构和语义角度衡量学生程序与正确答案的接近程度等问题,提出一种基于程序理解的自动评分方法.以程序理解的一般过程及基本策略为依据,结合人工阅卷的思维过程,建立评分模型.评分过程可划分为3个阶段:首先将程序代码转换成系统依赖图中间表示形式;然后,对系统依赖图进行标准化转换,消除程序表达方式的多样性;最后,匹配标准化后的学生程序与模板程序系统依赖图并根据匹配结果给出评分.该方法被应用于"C语言编程题自动评分系统"中.实验结果表明:它可以根据学生程序的语法和语义衡量学生程序实现编程任务的正确程度,具有较高的准确性.
- 马培军王甜甜苏小红
- 关键词:自动评分语义
- 用指针实现的程序的标准化及其应用被引量:1
- 2009年
- 为了消除指针程序实现形式的多样化,简化程序分析,提出一种对用指针实现的程序进行标准化的方法.首先将程序表示成系统依赖图,分析指针别名信息;然后制定指针标准化规则并结合已有的代码多样化消除规则,对系统依赖图进行保持语义不变的转换,将语法表示不同但语义等价的程序转换为相同的系统依赖图表示,从而消除代码多样化.最后,将该方法应用到C语言编程题的自动评分系统中,并与人工评分和正确评分结果进行对比,验证了该方法的有效性.
- 王甜甜郭全萍马培军苏小红
- 关键词:指针别名系统依赖图别名分析
- 基于系统依赖图的过程间指针分析方法
- 2010年
- 针对目前指针分析算法的程序中间表示形式不能充分表示程序的语法结构与语义,因而不适合应用于源代码-源代码级别的程序转换与分析的问题,提出了一种基于系统依赖图的过程间指针别名分析算法。改进了指针别名信息的表示方法,精确描述数组元素和指针数组元素的别名。以系统依赖图作为程序的中间表示形式,在每个过程调用节点,根据是否为递归调用,分别采用改进的Banning算法和函数内联的方法处理因参数传递引起的别名信息。实验结果表明,该方法的准确性高于Wilson算法和Emami算法,且指针分析结果可直接应用于源代码级别的程序分析与转换中。
- 王甜甜马培军苏小红郭全萍
- 关键词:系统依赖图指针别名上下文敏感