基于CIL的C语言类型系统构建研究
2014-09-10方昭潭经小川
计算机工程与设计 2014年5期
方昭潭,苏 亭,李 博,经小川,张 伟
(1.华东师范大学 软件学院,上海200062;2.中国航天系统科学与工程研究院,北京100080)
0 引 言
在计算机语言发展过程中,类型系统用于定义如何将编程语言中的数值和表达式归类为许多不同的类型,如何操作这些类型,这些类型如何互相作用,类型系统的目的是防止在程序的执行过程中有运行时错误的发生。最初,高级语言并没有类型系统的概念,即语言中的变量x可以指向任何存储位置,而被引用的位置可以保存任意类型的信息[1]。Ocaml就是这样的高级语言,虽然它没有类型系统,但是运行时,变量的意义就会知道,这就造成编译器无法在编译时事先安排存储方案。所以,类型系统有助于提高编译效率。
对于软件开发过程,测试是一个非常重要的阶段,而测试用例是测试过程中重要的输出结果,在一定程度上检测软件程序的实现是否满足规范的要求。为了方便软件工程师的分析和调试,自动化测试已经是当前测试发展的前进趋势。工业 界工具,如 TESTBED和googletest[2-6],可将测试用例作为这些工具的输入,从而达到测试自动化。然而这些测试用例都需要测试人员的前期介入,并非真正的自动化[7,8]。本文基于类型理论背景讲述C语言的类型系统的构建过程,为真正的测试自动化解决前期工作问题。
本文有如下贡献:①出工具前端用于处理类型的类型收集系统模型,辅助工具后端收集变量信息。②提出类型收集系统中每个类型所占的内存块模型相关的数据结构。……
登录APP查看全文
