面向编译器测试的部分求值静态输入确定方法

来源 :吉林大学 | 被引量 : 0次 | 上传用户:yongleyu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在编译器测试中,基于部分求值技术的编译器测试方法将用于编译器优化和程序例化的部分求值技术应用到编译器测试中,是一种比较新颖、有效的方法,但是这一方法对源程序用于部分求值的一组静态输入及其取值都是由人工手动指定的,这种依赖人工手动指定的策略无法使测试过程自动化进行,而且具有一定的盲目性。本文为了解决基于部分求值的编译器测试技术中静态输入需要人工手动指定的低效和盲目性,提出了一种源程序静态输入的确定方法和静态输入值的确定方法,重点是要解决两个问题:第一,如何量化变量的重要性,为了解决这个问题,定义了变量的依赖度属性;第二,如何自动化地计算变量的依赖度,为此采用了数据流分析手段,先将源程序抽象为一个控制流图,待研究的顺序和分支语句构成图的节点。对源程序的分析主要集中在这些节点上,弱化了图的边。在该定义中,每个变量的定义集合是在该变量的所有赋值语句中,右部表达式中其他变量的集合,即每个变量的值依赖于它定义集合中的变量,定义集合主要用于后续的数据流方程计算,控制流图的引用集合表示在一个节点语句中出现的所有变量的集合,本文方法的核心思想便是对引用集合中的每个变量,用它的依赖集合来替换它,直至收敛。计算完变量的依赖度后,对于已经收敛的控制流图,将其中所有留存的变量作为该程序静态输入的候选集合,并提出静态输入的确定规则。在确定完静态输入之后,本文考虑了容易引发bug的一些分支结构语句,基于这些语句中的条件运算表达式来计算出静态输入的取值范围,并最终为每个静态输入确定一个具体的值。本文分别在源程序的抽象语法树级别和中间表达式级别对提出的方法进行了实现。在抽象语法树级别,先将源程序转化成抽象语法树,控制流图中的节点在这里对应着具体的语句类型节点,这些节点中包含着表达式以及变量节点的信息,通过对语法树进行遍历,可以计算出变量的定义集合、语句节点的引用集合,然后应用上文中的算法进行迭代,得到候选集合以及每个候选变量的依赖度,然后分别应用静态输入的确定方法和取值策略,选出该程序的静态输入。本文基于方法实现改进了编译器测试框架,使之可以自动化进行,对比前人的那种,需要手工指定静态输入的测试方法,测试效率得到了极大的提高。为了验证本文方法的有效性,本文做了两部分实验:向待测试的编译器人工植入了错误以及收集一些现有的触发编译器bug的测试用例,用该测试框架进行测试,均可触发相应的bug。
其他文献
酞菁及其衍生物是一种典型的近红外区染料,因为π-π*跃迁引起强烈的Q带吸收而成为研究者关注的重点,并且由于其易修饰的π电子系统、较高的热稳定性和化学稳定性等特点,是染
整体叶轮是离心压缩机的核心零部件,模具广泛地应用于工业产品的加工中,两者在结构上都存在典型的型腔结构。型腔加工时材料去除量大,加工效率低。采用插铣工艺可以显著地提
位于美国布鲁克文国家实验室的相对论重离子对撞机和欧洲核子中心的大型强子对撞机进行的相对论重离子碰撞实验,可以产生一种由量子色动力学预言的新形态物质——夸克胶子等
工业有机废水具有毒性高、色度大、浓度高的特点,这一类废水处理难度大,传统的膜生物反应器方法占地面积大,费用高,容易产生膜污染。本课题的目的是找到一种新的组合工艺处理
从理论上讲,“立法目的”在司法中的适用有利于消减成文法的僵化,弥补法律漏洞,提高法官推理的合理性,但如何探明“立法目的”内容,合理适用“立法目的”,一直被学界所争论并困扰着法官的司法裁判。与此同时,案例指导制度作为我国司法改革推进过程中,司法公平公正的重要保障措施,为研究“立法目的”的司法适用提供了样本。本文从“立法目的”在指导性案例中适用情况的数据分析入手,提炼总结现阶段我国“立法目的”司法适用
标准模型的巨大成功来自于其对实验结果的自然诠释和未知物理的正确预言。2012年发现了 Higgs粒子,为研究电弱对称性自发破缺机制提供了更多的素材。但是标准模型的精细调节
超高压技术(HPP)作为一项非热物理加工技术,在有效灭菌的同时可较好地保持食品的营养和感官品质。本文研究了 HPP处理下鲜切马铃薯质地、风味品质的变化,同时探究HPP处理下鲜
随着城镇现代化步伐的加快,水体污染的控制和处理一直是人类社会需要解决的重大难题之一。高级氧化工艺(AOPs)一直是一种极具吸引力的治理方法,工程纳米材料(ENM)作为多相催化剂
碳材因其良好的物理、化学性能而广泛应用于各个领域。在电化学方面,碳材不仅可以直接作为催化剂使用,而且可以进行非金属或金属修饰改性,以增强其催化能力。C-O-C键的断裂是
自从3G时代到来之后,全球运营商都步入战略性转型的征途。在转型过程中,集团客户的重要性凸显。三大运营商对于重要集团客户的争夺异常激烈。随着社会经济的发展,集团客户中