论文部分内容阅读
ATLAS是一种广泛应用于军事装备和航空电子领域的测试语言规范,目前国内尚没有完全自主知识产权的ATLAS编译器类的软件产品。ATLAS编译器构造的工作量非常大,是构造常规的高级编程语言编译器工作量的数倍。本文着力研究从ATLAS语言到标准C语言翻译器的构造,讨论了ATLAS翻译器构造的方法以及构造过程中的一些关键技术。主要的研究工作及创新点包括以下几个方面:
一、本文解决的是工程问题,通过将ATLAS语言翻译为标准C语言,解决了完全自主知识产权的自动测试系统ATS组建过程中,ATLAS测试程序的实现问题。
二、目前国外已有的ATLAS编译器的实现中,将ATLAS语言翻译为该编译器系统自身的中间代码,然后再按照其指定格式完成实际资源的分配和语义实现。本文中提出将ATLAS语言翻译为通用的标准C语言。以标准C语言作为ATLAS语言翻译后的中间代码,使得ATLAS语言实现过程的语义翻译和资源分配具有可移植性和易操作性。
三、本研究工作的第一部分中,在对自动测试系统特性进行研究的基础上,提出将UML引入自动测试系统的建模过程中,通过UML的扩展机制为自动测试系统的框架开发提供获取该领域知识的方法。
四、本研究工作的第二部分提出:对ATLAS语言繁杂的关键字进行分类,并引入常规语言编译器构造时的符号表技术解决ATLAS语言中的大量关键字所造成的超出词法分析工具LEX的容量限制的问题;以及大量ATLAS关键字所引起的语法分析文件中单词数量超出语法分析工具YACC所认可的单词数量的问题。该方法不仅解决了词法分析工具处理ATLAS语言关键字时所遇到的工具容量受限制的问题,而且对解决ATLAS语言的扩展语句的词法分析也提供了切实可行的解决方案。
五、本研究工作的第三部分集中于解决语法分析工具YACC对ATLAS语言进行语法分析时所产生的冲突问题的处理。针对ATLAS语言本身的特点,结合LEX/YACC工具的特性,本文对使用YACC工具进行ATLAS语言语法分析过程中出现的大量冲突进行了详细的分类讨论与研究,给出了实现过程中出现的主要冲突类型及相应解决方案:文法符号的不断自身循环产生的移进/归约冲突,采用修改文法的方法:同等表示的重叠所造成的大量归约/归约冲突,采用替换法、拆解法或者拆解加语义函数的方法;构建表达式语法树时由循环嵌套造成的移进/归约冲突,采用消除其中的外部循环和内部循环之一的方法;对于其它符合ATLAS文法的冲突,则由YACC工具按照默认规则去处理。上述解决冲突的方法应用在.ATLAS翻译器构建项目中的语法分析过程中,成功完成了项目要求。
六、本研究工作的第四部分,也是整个研究项目中最重要的一部分,针对不同类型的ATLAS语句,按照其与C语言语句相应的对照关系,本文给出了实现不同类型ATLAS语句到标准C语言语句翻译的相应方案及实现。 ATLAS是一种特殊的面向信号的编程语言规范,其语句构造类似于自然语言。ATLAS测试程序与具体的测试仪器无关,只包含一些与测试要求相关的语句,像信号语句、总线语句等,这些语句只有等信号或总线事件准备好后才能执行。与标准C语言不同的是,ATLAS测试规范中包含一些与测试设备、仪器以及被测对象UUT紧密相关的信息,而这些信息是ATLAS测试程序有别于标准C语言的关键元素。在对ATLAS测试程序的处理中,我们将ATLAS语句分成与设备相关和与设备无关的两部分。前者由描述测试特性的信号语句组成,包含ATE及其资源、限制条件以及与UUT接口的相关信息。后者与常规的高级语言语句一样,与仪器无关。
对所有语句的语义分析方法都采用语法制导方法,该方法将语义函数插入到相应语句的产生式后面。在将ATLAS测试程序翻译为标准C程序的过程中,对于与仪器无关的语句直接翻译成标准C语言源代码,将ATLAS的程序结构转化为标准C语言的结构;对于与仪器相关的语句,首先要由ATLAS信号语句确定测试所需虚拟资源的相关信息,然后由GTEST开发平台按照虚拟资源相关信息需求从平台所包含的仪器数据库中选择符合条件的实际资源供翻译过程使用。根据实际资源信息翻译生成的标准c代码可以调用平台提供的真实仪器资源完成相关ATLAS测试程序的功能;最后将这两种情况得到的结果综合,就能生成完整的标准C代码。
本论文首先讨论了常规情况下ATLAS测试程序所使用的大环境——自动测试系统ATS的体系结构,提出利用UML的扩展机制获取自动测试系统ATS的领域知识的方法实例,然后按照ATLAS翻译器构造的顺序,依次阐述了ATLAS翻译器构造中的词法、语法分析中所遇到的问题及相应解决方案;ATLAS翻译器构造中的语义翻译如何实现的问题;在GTEST自动测试系统平台中ATLAS测试程序的包装及调用问题;另外还介绍了本论文所讨论的ATLAS翻译器在GTEST平台上针对“125电台”和“任务计算机”的ATLAS测试程序的运行分析,通过和PAWS软件平台上的运行结果对比,验证了ATLAS翻译器的性能及语义翻译含义的正确性;最后,通过本翻译器的构建,作者提出了构建整体的ATLAS升级版本(ATLAS2K)翻译器(或编译器)产品的一些构想和展望,指出构建类似产品时可能会遇到的相关问题及解决方案。