ATLAS常规语言部分到C语言的转换

来源 :吉林大学 | 被引量 : 0次 | 上传用户:lijws
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
ATLAS (Abbreviated Test Language for All Systems)是一个面向测试的通用语言,这个语言用于描述通常与任何具体测试系统无关的测试过程,并确保可以在自动测试系统ATE(automatic test equipment)上实现[1]。ATLAS语言因其可扩展性、易用性及设备无关性,被广泛应用于军事、工业等领域。 整个ATLAS项目的任务是实现ATLAS语言。整个项目分为三期完成。第一期的工作是完成ATLAS语言的词法分析和语法分析;第二期的工作是进行尽可能多的语义检查,并把ATLAS程序转换成在功能上完全等价的C语言程序;第三期的工作是对转换后的C语言程序进行优化,使其在可读性、可理解性、时间效率和空间效率上都达到比较满意的结果。 作为整个ATLAS项目第二期的一部分,本文完成了ATLAS语言的常规语言部分到C语言的转换。本文的工作主要包括以下几个方面的工作:一、ATLAS的声明部分到C语言的转换。ATLAS的声明部分包括常量声明语句、类型声明语句和变量声明语句。它们可以分别转换成C语言中对应的常量声明语句、类型声明语句和变量声明语句。二、ATLAS的过程相关语句到C语言的转换。ATLAS和过程相关的语句有三种:过程结构体定义、过程调用语句PERFORM、跳出过程语句LEAVE procedure。过程结构体定义执行某一功能的ATLAS语句序列。过程调用语句PERFORM调用已定义的过程来完成需要的任务。使用过程跳出语句LEAVE procedure可以在过程正常结束之前跳出过程。ATLAS的过程声明转换成C语言中的返回类型为void的函数声明。LEAVE procedure语句转换成C语言的从函数中返回的return语句。PERFORM语句转换成C语言的函数调用。三、ATLAS的数据处理语句到C语言的转换。ATLAS数据处理语句包括CALCULATE语句和COMPARE语句。CALCULATE语句提供进行计算的能力,可以是一条赋值语句,也可以是赋值语句序列。COMPARE语句通过把测试值与规定的极限值进行比较,设置GO,NOGO,HI,LO等标志状态字表示<WP=56>测试结果,以供在后续的测试过程进行使用。CALCULATE语句转换为C语言中的赋值或者赋值序列;C语言中没有直接的比较语句,故COMPARE语句在转换时用C语言的IF语句模拟。四、ATLAS的过程控制语句到C语言的转换。ATLAS过程控制语句决定程序的执行顺序,包含IF语句、WHILE语句、FOR语句、LEAVE IF语句、LEAVE WHILE语句、LEAVE FOR语句和GOTO语句。条件语句IF,循环语句WHILE和FOR以及无条件跳转语句GOTO的用法与C语言中的对应语句基本相同,转换时也可以直接对应。LEAVE IF语句、LEAVE WHILE语句、LEAVE FOR语句分别是从IF语句、WHILE语句、FOR语句中跳出,控制转向跳出的结构之后的第一个可执行语句。根据具体语义的不同将它们转换成C语言的break语句或者GOTO语句。五、ATLAS的输入输出语句到C语言的转换。ATLAS输入输出语句的功能是为程序传入或传出数据。包括4类语句:ENABLE FILE ACCESS语句、DISABLE FILE ACCESS语句、INPUT语句、和OUTPUT语句。ENABLE FILE ACCESS语句将一个文件变量和一个实际的文件建立联系,以便以后进行访问。DISABLE FILE ACCESS语句断开由ENABLE FILE ACCESS语句指定的文件变量与实际文件的联系,因而释放文件变量,以便以后使用。 INPUT语句根据输入文件的种类不同分为4类:第一类从一个已知类型的数据项组成的文件读入数据,传输单位是一个已知类型的数据项;第二类从文本文件输入数据,也可以从系统所属的标准输入设备上进行文本输入,传输单位是字符;第三类从未知文件输入数据,以位为单位进行传输;第四类对通过INPUT语句对条件量GO和NOGO进行设置。OUTPUT语句根据写出文件的种类不同分为三类:第一类将表达式的值写入已知类型数据构成的文件中,传输单位是一个已知类型的数据项;第二类向文本文件输出数据,也可一向系统所属的标准输出设备进行文本输出,传输单位是字符;第三类是向未知文件输出数据,以位为单位进行传输。将ATLAS的输入输出语句转换成C语言的输入输出语句。ENABLE FILE ACCESS语句转换成C语言的与之功能类似的fopen函数。DISABLE FILE ACCESS语句转换成C语言的fclose函数。INPUT语句中,对于已知类型文件和未知类型文件的读<WP=57>取转换成C语言中对二进制流文件的读取,对于文本文件的读取转换成C语言中对文件文件的读取操作,分别用C语言的fread或fscanf函数实现。对于设置GO/NOGO值的INPUT语句转换成对布尔变量GO/NOGO的赋值。OUTPUT语句中,对于已知类型文件和未知类型文件的写入转换成C语言中对二进制流文件的写操作,对于文本文件的写入转换成C语言中对文件文件的写操作,分别用C语言的fwrite或fprintf函数实现。本文讨论的ATLAS的常规语言部分到C语言的转换,是项目“ATLAS语言实现”的重要组成部分,为ATLAS语言其它部分(如信号部分和总线部分)的实现构造了语言框架。这部分转换是一个比较完整的开发模块,规模较大,其中用到了一定的编译技术和程序转换技术,在理论上和实际应用上都有一定的价值。
其他文献
该论文主要针对于三维CAD中的离散体造型方法进行了深入的理论研究,重点研究和实现了几种六面体拓扑网格上的体细分方法的构造与理论证明,同时利用提升算法建立了几种插值型
城市交通随着社会的发展面临着日益严重的交通拥挤、环境污染及社会效率下降等问题,解决问题的关键在于消除目前城市交通中人、车、路的分离状况,把车辆、道路和人等众要素综
随着计算机的发展、采集数据的工具的成熟以及数据库存储海量数据能力的增强,许多大型企业已经积累了大量的数据.这就迫使人们尽快地开发出一套切实可行的技术方法来智能的、
软件复用是提高软件质量和软件生产效率的有效途径.构件库是软件复用中管理可复用构件的基础设施,为基于构件的软件开发(CBSD)中的构件生产和构件复用两方面工作之间建立了桥
问答系统(Question Answering System)采用自然语言处理技术,以自然语言问句为用户接口,完成对问句的理解,返回问句的答案而不是返回相关文档的集合.它的研究涉及到计算语言
自从上世纪80年代以来,计算机集成制造系统(Computer Integrated Manufacturing System,简称CIMS)逐渐成为现代化制造业的热点,CIMS将成为21世纪的主导生产方式.当前,随着制
随着计算机技术的发展和Internet的广泛应用,人类生活越来越密切地依赖于网络,与此同时,各种网络安全问题层出不穷.如何防范来自网络的威胁,成为人们关注的焦点.在各种网络安
该文对AVE组建过程进行了研究,分析了AVE组建过程主要决策问题.针对伙伴选择问题,提出了三段式序贯决策过程和三段式序贯决策模型.对多种伙伴选择优化方法进行了研究和分析.
随着网络技术的飞速发展,应用由局域网扩展到广域网,形成了大规模的分布式应用系统,因此不可预计的故障、甚至是不可抗拒的故障现象也越来越多.同时,公司、企业以及政府逐渐
Web应用服务器为多层分布式企业级应用的开发、部署、集成、运行和维护提供了通用的基础设施。随着在网络计算环境下用户规模和数据量的增长,单个Web应用服务器往往不能满足性