atlas常规语言部分到c语言的转换.doc
约60页DOC格式手机打开展开
atlas常规语言部分到c语言的转换,硕士论文 atlas常规语言部分到c语言的转换60页共计18107字摘要atlas (abbreviated test language for all systems)是一个面向测试的通用语言,这个语言用于描述通常与任何具体测试系统无关的测试过程,并确保可以在自动测试系统ate(automatic test equi...
内容介绍
此文档由会员 usactu 发布
硕士论文 ATLAS常规语言部分到C语言的转换
60页共计18107字
摘 要
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等标志状态字表示测试结果,以供在后续的测试过程进行使用。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语句中,对于已知类型文件和未知类型文件的读取转换成C语言中对二进制流文件的读取,对于文本文件的读取转换成C语言中对文件文件的读取操作,分别用C语言的fread或fscanf函数实现。对于设置GO/NOGO值的INPUT语句转换成对布尔变量GO/NOGO的赋值。OUTPUT语句中,对于已知类型文件和未知类型文件的写入转换成C语言中对二进制流文件的写操作,对于文本文件的写入转换成C语言中对文件文件的写操作,分别用C语言的fwrite或fprintf函数实现。
本文讨论的ATLAS的常规语言部分到C语言的转换,是项目“ATLAS语言实现”的重要组成部分,为ATLAS语言其它部分(如信号部分和总线部分)的实现构造了语言框架。这部分转换是一个比较完整的开发模块,规模较大,其中用到了一定的编译技术和程序转换技术,在理论上和实际应用上都有一定的价值。
第一章 前 言 1
1.1 ATLAS语言及项目简介 1
1.2 程序转换技术 2
1.3 完成的主要工作 3
第二章 ATLAS声明部分的转换 5
2.1 ATLAS声明部分简介 5
2.2 转换方法 5
第三章 过程定义和调用的转换 13
3.1 ATLAS过程简介 13
3.2 转换方法 13
第四章 数据处理语句的转换 17
4.1 数据处理语句简介 17
4.2 转换方法 17
第五章 过程控制语句的转换 24
5.1 过程控制语句简介 24
5.2 转换规则 24
第六章 输入输出语句的转换 30
6.1 输入输出语句简介 30
6.2 转换方法 30
第七章 实 现 42
7.1 工作环境 42
7.2 转换工具Accent介绍 42
7.3 数据结构 43
7.4 基于产生式的ATLAS转换实现 43
第八章 总 结 48
参 考 文 献 49
致 谢
摘 要
Abstract
参 考 文 献
[1] IEEE Standards Coordinating Committee 20. Standard Test Language for All Systems —Common / Abbreviated Test Language for All Systems,1995
[2] Eelco Visser. A Survey of Rewriting Strategies in Program Transformation Systems,Electronic Notes in Theoretical Computer Science 57 No. 2 , 2001: 1-6.
[7] 金成植.《编译程序构造原理和实现技术》,ISBN 7-04-007492-3,高等教育出版社,2001.6 第二版
[8] 金成植. 《程序理论和技术》,ISBN 7-5601-2025-3,吉林大学出版社,1997.5 第一版
[9] 谭浩强. 《C程序设计》,ISBN 7-302-00860-4,清华大学出版社,1991.7 第一版
60页共计18107字
摘 要
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等标志状态字表示测试结果,以供在后续的测试过程进行使用。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语句中,对于已知类型文件和未知类型文件的读取转换成C语言中对二进制流文件的读取,对于文本文件的读取转换成C语言中对文件文件的读取操作,分别用C语言的fread或fscanf函数实现。对于设置GO/NOGO值的INPUT语句转换成对布尔变量GO/NOGO的赋值。OUTPUT语句中,对于已知类型文件和未知类型文件的写入转换成C语言中对二进制流文件的写操作,对于文本文件的写入转换成C语言中对文件文件的写操作,分别用C语言的fwrite或fprintf函数实现。
本文讨论的ATLAS的常规语言部分到C语言的转换,是项目“ATLAS语言实现”的重要组成部分,为ATLAS语言其它部分(如信号部分和总线部分)的实现构造了语言框架。这部分转换是一个比较完整的开发模块,规模较大,其中用到了一定的编译技术和程序转换技术,在理论上和实际应用上都有一定的价值。
第一章 前 言 1
1.1 ATLAS语言及项目简介 1
1.2 程序转换技术 2
1.3 完成的主要工作 3
第二章 ATLAS声明部分的转换 5
2.1 ATLAS声明部分简介 5
2.2 转换方法 5
第三章 过程定义和调用的转换 13
3.1 ATLAS过程简介 13
3.2 转换方法 13
第四章 数据处理语句的转换 17
4.1 数据处理语句简介 17
4.2 转换方法 17
第五章 过程控制语句的转换 24
5.1 过程控制语句简介 24
5.2 转换规则 24
第六章 输入输出语句的转换 30
6.1 输入输出语句简介 30
6.2 转换方法 30
第七章 实 现 42
7.1 工作环境 42
7.2 转换工具Accent介绍 42
7.3 数据结构 43
7.4 基于产生式的ATLAS转换实现 43
第八章 总 结 48
参 考 文 献 49
致 谢
摘 要
Abstract
参 考 文 献
[1] IEEE Standards Coordinating Committee 20. Standard Test Language for All Systems —Common / Abbreviated Test Language for All Systems,1995
[2] Eelco Visser. A Survey of Rewriting Strategies in Program Transformation Systems,Electronic Notes in Theoretical Computer Science 57 No. 2 , 2001: 1-6.
[7] 金成植.《编译程序构造原理和实现技术》,ISBN 7-04-007492-3,高等教育出版社,2001.6 第二版
[8] 金成植. 《程序理论和技术》,ISBN 7-5601-2025-3,吉林大学出版社,1997.5 第一版
[9] 谭浩强. 《C程序设计》,ISBN 7-302-00860-4,清华大学出版社,1991.7 第一版