一种用于测试编译优化的程序控制结构生成算法

来源 :中国科学院软件研究所 | 被引量 : 7次 | 上传用户:xiazibin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
编译器是将高级语言源程序翻译转换成低级语言目标程序的系统软件,是软件开发的一种基础支撑工具,它的正确性直接影响到应用软件的可靠性,因此需要通过大量的测试工作来保障编译器的质量。优化是编译过程中的重要阶段,它主要通过对程序进行功能等价的转换来提高目标程序的性能。编译优化问题多是NP问题,算法复杂度高,需要进行针对性的测试。编译优化测试是针对编译器优化功能的测试,检查经过编译优化后得到的目标程序的功能是否正确、执行性能是否得到改善。 编译器测试的主要流程和通常的软件测试一样,包括了测试用例生成、测试用例执行以及测试结果判定等活动。编译器测试中的测试用例是高级语言源程序,手工生成方式工作量大,而且难以保证充分的覆盖度,为了提高效率,需要有自动化的测试用例生成方法。传统的编译器自动测试方法大多从源语言的文法出发生成测试用例,能够很好地测试编译器的“翻译”功能,但是对编译器后端优化功能的测试缺乏针对性。在编译优化测试中,测试用例除了需要满足文法的约束之外,更重要的是需要具有“可被优化的”特征,因此需要能够生成可被优化的测试用例的方法,用于编译优化测试。 编译优化算法的执行通常以程序分析为基础,对具有特定控制结构及数据流内容的程序进行转换。根据这一特点我们提出了一种基于控制结构扩充数据流成分的测试用例自动生成方法。控制结构是一个程序的结构框架,数据流成分则依附于一定的控制结构之上。该方法将测试用例的生成分为控制结构生成和数据流生成两部分。生成测试用例时,首先根据程序控制结构生成算法生成测试用例的控制结构:然后针对不同的优化技术在生成的控制结构上使用相应的数据流生成算法,得到完整的测试用例。这种方法直观、简单,能够方便地描述测试用例中可优化成分的组成,并控制它们的生成,可以有针对性地测试多种编译优化技术。 本文的研究重点是该方法的基础:程序控制结构生成算法。该算法使用平行和嵌套两种特征参数来定义程序中基本控制结构之间的关系,以此描述程序的整体结构特征。在自动生成程序控制结构的时候,先根据指定的参数值构建完全树,然后按照一定的裁剪和恢复规则对构建的完全树进行剪枝,并依据判定条件得到所有满足结构特征要求的树结构集合,最后将这些树结构转换成对应的程序控制结构,作为下一步扩充数据流成分、从而最终生成完整测试用例的基础。 上述方法已在一个优化编译器自动测试工具中成功实现。该工具基于本文所介绍的测试用例自动生成方法,使用两级脚本解析技术,能够自动生成具有满足测试需要的控制结构和数据流成分的测试用例。目前此工具已成功的应用于一种嵌入式优化编译器的测试,取得了良好的使用效果。
其他文献
面向对象方法作为一种成熟的软件开发方法已经在国内外广泛应用,近年在我国金融行业引起重视。人民币结算账户管理和监控是人民银行的一项重要职责,2004年6月至2005年2月,中国人
随着Web技术和电子政务的发展,基于Web的电子政务应用系统也成为研究和开发的热点。设计并开发一个安全,灵活,可移植,可维护,运行效率高的基于Web的电子政务应用系统成为我国软件
术语是为有效表达领域知识而产生的词语单元,其计算至少分为单元度(指一个符号串作为词语出现的可能性的度量)的计算和领域性的计算两方面。 本论文重点研究单元度的计算方
随着集成电路的进一步发展,波长为13.5nm的极紫外(EUV)光刻技术成为前沿和趋势。由于EUV辐射被包括空气在内的几乎所有物质强烈吸收,EUV光刻机须在真空环境中运行。因为在光刻
访问控制是安全服务中一种重要的机制,它能够保护系统资源免遭非法使用。传统的自主式或强制式访问控制策略在强度和灵活性方面不能很好地满足分布式系统的要求,而基于角色的
本文的研究以一个已经实现的B2级安全操作系统为基础,对安全操作系统审计子系统设计与开发的若干关键技术进行了研究,整体论述了基于访问验证保护级安全操作系统的审计报警模块
动物机器人指一类以活体动物为载体,通过脑机接口技术,将外部的控制指令转换成微电刺激施加于动物大脑,从而实现动物行为调控的新型机器人系统。随着动物机器人控制技术的不断发
网络I/O一直是分布式应用的瓶颈。为此,相关研究者提出高速网络RDMA(Remote Direct Memory Access)技术。RDMA具有卸载TCP/IP协议栈和用户态下处理数据传输的工作方式,它首先
接入网(Access Network)是指Internet骨干网络到用户终端之间的所有设备,其中包含运营商提供的DNS(Domain Name System,域名系统)递归解析服务器、SIP(Session Initiation Protoco
经济的高速发展和城市化进程的加快,使我国城市交通基础设施承受着巨大的压力,同时低效率利用和管理技术落后又加剧了交通设施短缺造成的困难,因此发展智能交通系统的意义非