atlas常規(guī)語言部分到c語言的轉(zhuǎn)換.doc
約60頁DOC格式手機(jī)打開展開
atlas常規(guī)語言部分到c語言的轉(zhuǎn)換,碩士論文 atlas常規(guī)語言部分到c語言的轉(zhuǎn)換60頁共計(jì)18107字摘要atlas (abbreviated test language for all systems)是一個(gè)面向測試的通用語言,這個(gè)語言用于描述通常與任何具體測試系統(tǒng)無關(guān)的測試過程,并確??梢栽谧詣?dòng)測試系統(tǒng)ate(automatic test equi...


內(nèi)容介紹
此文檔由會(huì)員 usactu 發(fā)布
碩士論文 ATLAS常規(guī)語言部分到C語言的轉(zhuǎn)換
60頁共計(jì)18107字
摘 要
ATLAS (Abbreviated Test Language for All Systems)是一個(gè)面向測試的通用語言,這個(gè)語言用于描述通常與任何具體測試系統(tǒng)無關(guān)的測試過程,并確保可以在自動(dòng)測試系統(tǒng)ATE(automatic test equipment)上實(shí)現(xiàn)[1]。ATLAS語言因其可擴(kuò)展性、易用性及設(shè)備無關(guān)性,被廣泛應(yīng)用于軍事、工業(yè)等領(lǐng)域。
整個(gè)ATLAS項(xiàng)目的任務(wù)是實(shí)現(xiàn)ATLAS語言。整個(gè)項(xiàng)目分為三期完成。第一期的工作是完成ATLAS語言的詞法分析和語法分析;第二期的工作是進(jìn)行盡可能多的語義檢查,并把ATLAS程序轉(zhuǎn)換成在功能上完全等價(jià)的C語言程序;第三期的工作是對(duì)轉(zhuǎn)換后的C語言程序進(jìn)行優(yōu)化,使其在可讀性、可理解性、時(shí)間效率和空間效率上都達(dá)到比較滿意的結(jié)果。
作為整個(gè)ATLAS項(xiàng)目第二期的一部分,本文完成了ATLAS語言的常規(guī)語言部分到C語言的轉(zhuǎn)換。本文的工作主要包括以下幾個(gè)方面的工作:
一、ATLAS的聲明部分到C語言的轉(zhuǎn)換。ATLAS的聲明部分包括常量聲明語句、類型聲明語句和變量聲明語句。它們可以分別轉(zhuǎn)換成C語言中對(duì)應(yīng)的常量聲明語句、類型聲明語句和變量聲明語句。
二、ATLAS的過程相關(guān)語句到C語言的轉(zhuǎn)換。ATLAS和過程相關(guān)的語句有三種:過程結(jié)構(gòu)體定義、過程調(diào)用語句PERFORM、跳出過程語句LEAVE procedure。過程結(jié)構(gòu)體定義執(zhí)行某一功能的ATLAS語句序列。過程調(diào)用語句PERFORM調(diào)用已定義的過程來完成需要的任務(wù)。使用過程跳出語句LEAVE procedure可以在過程正常結(jié)束之前跳出過程。ATLAS的過程聲明轉(zhuǎn)換成C語言中的返回類型為void的函數(shù)聲明。LEAVE procedure語句轉(zhuǎn)換成C語言的從函數(shù)中返回的return語句。PERFORM語句轉(zhuǎn)換成C語言的函數(shù)調(diào)用。
三、ATLAS的數(shù)據(jù)處理語句到C語言的轉(zhuǎn)換。ATLAS數(shù)據(jù)處理語句包括CALCULATE語句和COMPARE語句。CALCULATE語句提供進(jìn)行計(jì)算的能力,可以是一條賦值語句,也可以是賦值語句序列。COMPARE語句通過把測試值與規(guī)定的極限值進(jìn)行比較,設(shè)置GO,NOGO,HI,LO等標(biāo)志狀態(tài)字表示測試結(jié)果,以供在后續(xù)的測試過程進(jìn)行使用。CALCULATE語句轉(zhuǎn)換為C語言中的賦值或者賦值序列;C語言中沒有直接的比較語句,故COMPARE語句在轉(zhuǎn)換時(shí)用C語言的IF語句模擬。
四、ATLAS的過程控制語句到C語言的轉(zhuǎn)換。ATLAS過程控制語句決定程序的執(zhí)行順序,包含IF語句、WHILE語句、FOR語句、LEAVE IF語句、LEAVE WHILE語句、LEAVE FOR語句和GOTO語句。條件語句IF,循環(huán)語句WHILE和FOR以及無條件跳轉(zhuǎn)語句GOTO的用法與C語言中的對(duì)應(yīng)語句基本相同,轉(zhuǎn)換時(shí)也可以直接對(duì)應(yīng)。LEAVE IF語句、LEAVE WHILE語句、LEAVE FOR語句分別是從IF語句、WHILE語句、FOR語句中跳出,控制轉(zhuǎn)向跳出的結(jié)構(gòu)之后的第一個(gè)可執(zhí)行語句。根據(jù)具體語義的不同將它們轉(zhuǎn)換成C語言的break語句或者GOTO語句。
五、ATLAS的輸入輸出語句到C語言的轉(zhuǎn)換。 ATLAS輸入輸出語句的功能是為程序傳入或傳出數(shù)據(jù)。包括4類語句:ENABLE FILE ACCESS語句、DISABLE FILE ACCESS語句、INPUT語句、和OUTPUT語句。
ENABLE FILE ACCESS語句將一個(gè)文件變量和一個(gè)實(shí)際的文件建立聯(lián)系,以便以后進(jìn)行訪問。DISABLE FILE ACCESS語句斷開由ENABLE FILE ACCESS語句指定的文件變量與實(shí)際文件的聯(lián)系,因而釋放文件變量,以便以后使用。
INPUT語句根據(jù)輸入文件的種類不同分為4類:第一類從一個(gè)已知類型的數(shù)據(jù)項(xiàng)組成的文件讀入數(shù)據(jù),傳輸單位是一個(gè)已知類型的數(shù)據(jù)項(xiàng);第二類從文本文件輸入數(shù)據(jù),也可以從系統(tǒng)所屬的標(biāo)準(zhǔn)輸入設(shè)備上進(jìn)行文本輸入,傳輸單位是字符;第三類從未知文件輸入數(shù)據(jù),以位為單位進(jìn)行傳輸;第四類對(duì)通過INPUT語句對(duì)條件量GO和NOGO進(jìn)行設(shè)置。
OUTPUT語句根據(jù)寫出文件的種類不同分為三類:第一類將表達(dá)式的值寫入已知類型數(shù)據(jù)構(gòu)成的文件中,傳輸單位是一個(gè)已知類型的數(shù)據(jù)項(xiàng);第二類向文本文件輸出數(shù)據(jù),也可一向系統(tǒng)所屬的標(biāo)準(zhǔn)輸出設(shè)備進(jìn)行文本輸出,傳輸單位是字符;第三類是向未知文件輸出數(shù)據(jù),以位為單位進(jìn)行傳輸。
將ATLAS的輸入輸出語句轉(zhuǎn)換成C語言的輸入輸出語句。ENABLE FILE ACCESS語句轉(zhuǎn)換成C語言的與之功能類似的fopen函數(shù)。DISABLE FILE ACCESS語句轉(zhuǎn)換成C語言的fclose函數(shù)。INPUT語句中,對(duì)于已知類型文件和未知類型文件的讀取轉(zhuǎn)換成C語言中對(duì)二進(jìn)制流文件的讀取,對(duì)于文本文件的讀取轉(zhuǎn)換成C語言中對(duì)文件文件的讀取操作,分別用C語言的fread或fscanf函數(shù)實(shí)現(xiàn)。對(duì)于設(shè)置GO/NOGO值的INPUT語句轉(zhuǎn)換成對(duì)布爾變量GO/NOGO的賦值。OUTPUT語句中,對(duì)于已知類型文件和未知類型文件的寫入轉(zhuǎn)換成C語言中對(duì)二進(jìn)制流文件的寫操作,對(duì)于文本文件的寫入轉(zhuǎn)換成C語言中對(duì)文件文件的寫操作,分別用C語言的fwrite或fprintf函數(shù)實(shí)現(xiàn)。
本文討論的ATLAS的常規(guī)語言部分到C語言的轉(zhuǎn)換,是項(xiàng)目“ATLAS語言實(shí)現(xiàn)”的重要組成部分,為ATLAS語言其它部分(如信號(hào)部分和總線部分)的實(shí)現(xiàn)構(gòu)造了語言框架。這部分轉(zhuǎn)換是一個(gè)比較完整的開發(fā)模塊,規(guī)模較大,其中用到了一定的編譯技術(shù)和程序轉(zhuǎn)換技術(shù),在理論上和實(shí)際應(yīng)用上都有一定的價(jià)值。
第一章 前 言 1
1.1 ATLAS語言及項(xiàng)目簡介 1
1.2 程序轉(zhuǎn)換技術(shù) 2
1.3 完成的主要工作 3
第二章 ATLAS聲明部分的轉(zhuǎn)換 5
2.1 ATLAS聲明部分簡介 5
2.2 轉(zhuǎn)換方法 5
第三章 過程定義和調(diào)用的轉(zhuǎn)換 13
3.1 ATLAS過程簡介 13
3.2 轉(zhuǎn)換方法 13
第四章 數(shù)據(jù)處理語句的轉(zhuǎn)換 17
4.1 數(shù)據(jù)處理語句簡介 17
4.2 轉(zhuǎn)換方法 17
第五章 過程控制語句的轉(zhuǎn)換 24
5.1 過程控制語句簡介 24
5.2 轉(zhuǎn)換規(guī)則 24
第六章 輸入輸出語句的轉(zhuǎn)換 30
6.1 輸入輸出語句簡介 30
6.2 轉(zhuǎn)換方法 30
第七章 實(shí) 現(xiàn) 42
7.1 工作環(huán)境 42
7.2 轉(zhuǎn)換工具Accent介紹 42
7.3 數(shù)據(jù)結(jié)構(gòu) 43
7.4 基于產(chǎn)生式的ATLAS轉(zhuǎn)換實(shí)現(xiàn) 43
第八章 總 結(jié) 48
參 考 文 獻(xiàn) 49
致 謝
摘 要
Abstract
參 考 文 獻(xiàn)
[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] 金成植.《編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)》,ISBN 7-04-007492-3,高等教育出版社,2001.6 第二版
[8] 金成植. 《程序理論和技術(shù)》,ISBN 7-5601-2025-3,吉林大學(xué)出版社,1997.5 第一版
[9] 譚浩強(qiáng). 《C程序設(shè)計(jì)》,ISBN 7-302-00860-4,清華大學(xué)出版社,1991.7 第一版
60頁共計(jì)18107字
摘 要
ATLAS (Abbreviated Test Language for All Systems)是一個(gè)面向測試的通用語言,這個(gè)語言用于描述通常與任何具體測試系統(tǒng)無關(guān)的測試過程,并確保可以在自動(dòng)測試系統(tǒng)ATE(automatic test equipment)上實(shí)現(xiàn)[1]。ATLAS語言因其可擴(kuò)展性、易用性及設(shè)備無關(guān)性,被廣泛應(yīng)用于軍事、工業(yè)等領(lǐng)域。
整個(gè)ATLAS項(xiàng)目的任務(wù)是實(shí)現(xiàn)ATLAS語言。整個(gè)項(xiàng)目分為三期完成。第一期的工作是完成ATLAS語言的詞法分析和語法分析;第二期的工作是進(jìn)行盡可能多的語義檢查,并把ATLAS程序轉(zhuǎn)換成在功能上完全等價(jià)的C語言程序;第三期的工作是對(duì)轉(zhuǎn)換后的C語言程序進(jìn)行優(yōu)化,使其在可讀性、可理解性、時(shí)間效率和空間效率上都達(dá)到比較滿意的結(jié)果。
作為整個(gè)ATLAS項(xiàng)目第二期的一部分,本文完成了ATLAS語言的常規(guī)語言部分到C語言的轉(zhuǎn)換。本文的工作主要包括以下幾個(gè)方面的工作:
一、ATLAS的聲明部分到C語言的轉(zhuǎn)換。ATLAS的聲明部分包括常量聲明語句、類型聲明語句和變量聲明語句。它們可以分別轉(zhuǎn)換成C語言中對(duì)應(yīng)的常量聲明語句、類型聲明語句和變量聲明語句。
二、ATLAS的過程相關(guān)語句到C語言的轉(zhuǎn)換。ATLAS和過程相關(guān)的語句有三種:過程結(jié)構(gòu)體定義、過程調(diào)用語句PERFORM、跳出過程語句LEAVE procedure。過程結(jié)構(gòu)體定義執(zhí)行某一功能的ATLAS語句序列。過程調(diào)用語句PERFORM調(diào)用已定義的過程來完成需要的任務(wù)。使用過程跳出語句LEAVE procedure可以在過程正常結(jié)束之前跳出過程。ATLAS的過程聲明轉(zhuǎn)換成C語言中的返回類型為void的函數(shù)聲明。LEAVE procedure語句轉(zhuǎn)換成C語言的從函數(shù)中返回的return語句。PERFORM語句轉(zhuǎn)換成C語言的函數(shù)調(diào)用。
三、ATLAS的數(shù)據(jù)處理語句到C語言的轉(zhuǎn)換。ATLAS數(shù)據(jù)處理語句包括CALCULATE語句和COMPARE語句。CALCULATE語句提供進(jìn)行計(jì)算的能力,可以是一條賦值語句,也可以是賦值語句序列。COMPARE語句通過把測試值與規(guī)定的極限值進(jìn)行比較,設(shè)置GO,NOGO,HI,LO等標(biāo)志狀態(tài)字表示測試結(jié)果,以供在后續(xù)的測試過程進(jìn)行使用。CALCULATE語句轉(zhuǎn)換為C語言中的賦值或者賦值序列;C語言中沒有直接的比較語句,故COMPARE語句在轉(zhuǎn)換時(shí)用C語言的IF語句模擬。
四、ATLAS的過程控制語句到C語言的轉(zhuǎn)換。ATLAS過程控制語句決定程序的執(zhí)行順序,包含IF語句、WHILE語句、FOR語句、LEAVE IF語句、LEAVE WHILE語句、LEAVE FOR語句和GOTO語句。條件語句IF,循環(huán)語句WHILE和FOR以及無條件跳轉(zhuǎn)語句GOTO的用法與C語言中的對(duì)應(yīng)語句基本相同,轉(zhuǎn)換時(shí)也可以直接對(duì)應(yīng)。LEAVE IF語句、LEAVE WHILE語句、LEAVE FOR語句分別是從IF語句、WHILE語句、FOR語句中跳出,控制轉(zhuǎn)向跳出的結(jié)構(gòu)之后的第一個(gè)可執(zhí)行語句。根據(jù)具體語義的不同將它們轉(zhuǎn)換成C語言的break語句或者GOTO語句。
五、ATLAS的輸入輸出語句到C語言的轉(zhuǎn)換。 ATLAS輸入輸出語句的功能是為程序傳入或傳出數(shù)據(jù)。包括4類語句:ENABLE FILE ACCESS語句、DISABLE FILE ACCESS語句、INPUT語句、和OUTPUT語句。
ENABLE FILE ACCESS語句將一個(gè)文件變量和一個(gè)實(shí)際的文件建立聯(lián)系,以便以后進(jìn)行訪問。DISABLE FILE ACCESS語句斷開由ENABLE FILE ACCESS語句指定的文件變量與實(shí)際文件的聯(lián)系,因而釋放文件變量,以便以后使用。
INPUT語句根據(jù)輸入文件的種類不同分為4類:第一類從一個(gè)已知類型的數(shù)據(jù)項(xiàng)組成的文件讀入數(shù)據(jù),傳輸單位是一個(gè)已知類型的數(shù)據(jù)項(xiàng);第二類從文本文件輸入數(shù)據(jù),也可以從系統(tǒng)所屬的標(biāo)準(zhǔn)輸入設(shè)備上進(jìn)行文本輸入,傳輸單位是字符;第三類從未知文件輸入數(shù)據(jù),以位為單位進(jìn)行傳輸;第四類對(duì)通過INPUT語句對(duì)條件量GO和NOGO進(jìn)行設(shè)置。
OUTPUT語句根據(jù)寫出文件的種類不同分為三類:第一類將表達(dá)式的值寫入已知類型數(shù)據(jù)構(gòu)成的文件中,傳輸單位是一個(gè)已知類型的數(shù)據(jù)項(xiàng);第二類向文本文件輸出數(shù)據(jù),也可一向系統(tǒng)所屬的標(biāo)準(zhǔn)輸出設(shè)備進(jìn)行文本輸出,傳輸單位是字符;第三類是向未知文件輸出數(shù)據(jù),以位為單位進(jìn)行傳輸。
將ATLAS的輸入輸出語句轉(zhuǎn)換成C語言的輸入輸出語句。ENABLE FILE ACCESS語句轉(zhuǎn)換成C語言的與之功能類似的fopen函數(shù)。DISABLE FILE ACCESS語句轉(zhuǎn)換成C語言的fclose函數(shù)。INPUT語句中,對(duì)于已知類型文件和未知類型文件的讀取轉(zhuǎn)換成C語言中對(duì)二進(jìn)制流文件的讀取,對(duì)于文本文件的讀取轉(zhuǎn)換成C語言中對(duì)文件文件的讀取操作,分別用C語言的fread或fscanf函數(shù)實(shí)現(xiàn)。對(duì)于設(shè)置GO/NOGO值的INPUT語句轉(zhuǎn)換成對(duì)布爾變量GO/NOGO的賦值。OUTPUT語句中,對(duì)于已知類型文件和未知類型文件的寫入轉(zhuǎn)換成C語言中對(duì)二進(jìn)制流文件的寫操作,對(duì)于文本文件的寫入轉(zhuǎn)換成C語言中對(duì)文件文件的寫操作,分別用C語言的fwrite或fprintf函數(shù)實(shí)現(xiàn)。
本文討論的ATLAS的常規(guī)語言部分到C語言的轉(zhuǎn)換,是項(xiàng)目“ATLAS語言實(shí)現(xiàn)”的重要組成部分,為ATLAS語言其它部分(如信號(hào)部分和總線部分)的實(shí)現(xiàn)構(gòu)造了語言框架。這部分轉(zhuǎn)換是一個(gè)比較完整的開發(fā)模塊,規(guī)模較大,其中用到了一定的編譯技術(shù)和程序轉(zhuǎn)換技術(shù),在理論上和實(shí)際應(yīng)用上都有一定的價(jià)值。
第一章 前 言 1
1.1 ATLAS語言及項(xiàng)目簡介 1
1.2 程序轉(zhuǎn)換技術(shù) 2
1.3 完成的主要工作 3
第二章 ATLAS聲明部分的轉(zhuǎn)換 5
2.1 ATLAS聲明部分簡介 5
2.2 轉(zhuǎn)換方法 5
第三章 過程定義和調(diào)用的轉(zhuǎn)換 13
3.1 ATLAS過程簡介 13
3.2 轉(zhuǎn)換方法 13
第四章 數(shù)據(jù)處理語句的轉(zhuǎn)換 17
4.1 數(shù)據(jù)處理語句簡介 17
4.2 轉(zhuǎn)換方法 17
第五章 過程控制語句的轉(zhuǎn)換 24
5.1 過程控制語句簡介 24
5.2 轉(zhuǎn)換規(guī)則 24
第六章 輸入輸出語句的轉(zhuǎn)換 30
6.1 輸入輸出語句簡介 30
6.2 轉(zhuǎn)換方法 30
第七章 實(shí) 現(xiàn) 42
7.1 工作環(huán)境 42
7.2 轉(zhuǎn)換工具Accent介紹 42
7.3 數(shù)據(jù)結(jié)構(gòu) 43
7.4 基于產(chǎn)生式的ATLAS轉(zhuǎn)換實(shí)現(xiàn) 43
第八章 總 結(jié) 48
參 考 文 獻(xiàn) 49
致 謝
摘 要
Abstract
參 考 文 獻(xiàn)
[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] 金成植.《編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)》,ISBN 7-04-007492-3,高等教育出版社,2001.6 第二版
[8] 金成植. 《程序理論和技術(shù)》,ISBN 7-5601-2025-3,吉林大學(xué)出版社,1997.5 第一版
[9] 譚浩強(qiáng). 《C程序設(shè)計(jì)》,ISBN 7-302-00860-4,清華大學(xué)出版社,1991.7 第一版