TTCN-3編譯技術(shù)研究與實(shí)現(xiàn)_第1頁(yè)
TTCN-3編譯技術(shù)研究與實(shí)現(xiàn)_第2頁(yè)
TTCN-3編譯技術(shù)研究與實(shí)現(xiàn)_第3頁(yè)
TTCN-3編譯技術(shù)研究與實(shí)現(xiàn)_第4頁(yè)
TTCN-3編譯技術(shù)研究與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、西南交通大學(xué)研究生學(xué)位論文TCN-3編譯技術(shù)研究與實(shí)現(xiàn) TOC o 1-5 h z 年級(jí)姓名申請(qǐng)學(xué)位級(jí)別專業(yè)指導(dǎo)教師二 O O 級(jí) 錢 向 紅 碩士計(jì)算機(jī)應(yīng)用技術(shù) 曾華燊 教授二OO四年十一月Classified Index: TP314U.D.C: 681.3.06Southwest Jiaotong UniversityMaster Degree ThesisRESEARCH ON TTCN-3 COMPILINGTECHNIQUES AND IMPLEMENTATIONGrade: 2001Candidate: Qian XianghongAcademic Degree Applied

2、for: MasterMajor: Computer ApplicationSupervisor: Prof. Zeng HuashenNov. 2004西南交通大學(xué)碩士研究生學(xué)位論文第II頁(yè)西南交通大學(xué)碩士研究生學(xué)位論文第I頁(yè)摘要本論文的研究背景是:IPv6協(xié)議集的測(cè)試,特別是對(duì)IPv6路由器設(shè)備的 測(cè)試技術(shù)已經(jīng)成為從現(xiàn)有In ternet向基于IPv6的NGI (Next Ge nerati on In terne) 過(guò)渡的關(guān)鍵技術(shù)之一;現(xiàn)代路由器以多端口和高速化為特征,對(duì)路由器產(chǎn)品 的符合協(xié)議標(biāo)準(zhǔn)的測(cè)試、性能測(cè)試難度增加。為了能夠模擬路由器的真實(shí)工作 環(huán)境,對(duì)路由器的功能與性能指標(biāo)進(jìn)行全

3、面的測(cè)試,四川省網(wǎng)絡(luò)通信重點(diǎn)實(shí)驗(yàn) 室開(kāi)展了對(duì)多端口路由器并發(fā)測(cè)試技術(shù)的研究和測(cè)試系統(tǒng)的開(kāi)發(fā)工作。本論文 反映的工作是該項(xiàng)目的子系統(tǒng) “雙端口測(cè)試系統(tǒng)” (TPT -Two Port Teste)中的 “測(cè)試支撐工具研究”,即如何將用TTCN-3語(yǔ)言描述的測(cè)試控制數(shù)據(jù)轉(zhuǎn)變?yōu)闇y(cè) 試系統(tǒng)中的可執(zhí)行測(cè)試數(shù)據(jù)。傳統(tǒng)上這一轉(zhuǎn)換過(guò)程可以采用兩種方式:解釋與編譯。目前已有的測(cè)試系 統(tǒng)中采用解釋方式的較多,即“邊解釋邊執(zhí)行”的測(cè)試方法。筆者及其同事在分析了現(xiàn)代高速路由器的測(cè)試需要的基礎(chǔ)上,在存儲(chǔ)空間的占用量和可執(zhí)行代 碼修改的方便性,與測(cè)試實(shí)時(shí)性要求的矛盾中,選擇了“縮短聯(lián)機(jī)處理時(shí)間” 優(yōu)先的策略,采用對(duì)TTC

4、N-3描述的測(cè)試控制數(shù)據(jù)進(jìn)行編譯的技術(shù)路線。TTCN-3的編譯過(guò)程與傳統(tǒng)的編譯過(guò)程類似,包括詞法分析、語(yǔ)法分析、語(yǔ) 義分析和代碼生成4個(gè)階段。為了與測(cè)試系統(tǒng)中其它部件整合,編譯器采用兩 步編譯的方式,第一步將TTCN-3語(yǔ)言轉(zhuǎn)換成C語(yǔ)言代碼,第二步將C代碼與 測(cè)試系統(tǒng)的其它組成部分聯(lián)合編譯,最終生成可執(zhí)行代碼。由于最終的可執(zhí)行 代碼將由C編譯器完成,因此在TTCN-3/C的編譯過(guò)程中沒(méi)有考慮代碼生成的 優(yōu)化問(wèn)題。編譯器采用兩遍掃描,第一遍掃描讀入TTCN-3源程序,并對(duì)其進(jìn)行詞法分析、語(yǔ)法分析和語(yǔ)義分析。第二遍遍歷第一遍輸出的語(yǔ)法樹(shù),結(jié)合符 號(hào)表來(lái)生成目標(biāo)C代碼。筆者的工作涉及詞法、語(yǔ)法和語(yǔ)義

5、分析,但研究重點(diǎn)在于代碼生成部分的 設(shè)計(jì)與實(shí)現(xiàn)。由于TTCN-3編譯器是雙端口測(cè)試系統(tǒng)的支撐工具,因此與測(cè)試 系統(tǒng)相關(guān)。編譯后的C代碼將與單測(cè)試?yán)闅v軟件(Traverser)和編解碼器(E/D - Encoder/Decoder聯(lián)合進(jìn)行C編譯,最終形成可執(zhí)行的單測(cè)試?yán)郎y(cè)試代碼, 因此 TTCN-3/C編譯器還需要充分考慮與二者的結(jié)合問(wèn)題。 鑒于研究中的多端口并發(fā) 測(cè)試必須依賴雙端口測(cè)試器作為基本測(cè)試單元,使其能夠集中于對(duì)多端口并發(fā)測(cè)試的控制問(wèn)題,而本文反映的工作主要是雙端口測(cè)試系統(tǒng)支撐工具的研究與 開(kāi)發(fā),也是下一階段的多端口并發(fā)測(cè)試系統(tǒng)的基礎(chǔ)。關(guān)鍵詞:編譯器;TTCN-3 ;語(yǔ)法分析;代碼生

6、成西南交通大學(xué)碩士研究生學(xué)位論文第IV頁(yè)西南交通大學(xué)碩士研究生學(xué)位論文第III 頁(yè)AbstractThe backgro und of the research work prese nted in this dissertatio n in elude: A) Testi ng of IPv6 protocol stack, especially IPv6 routers, has become one of the key tech no logies to migrate from the existi ng Internet to the emerg ing Next Gen erat

7、i on Intern et, and B) Existi ng tech niq ues in con forma nee and performa nee test ing for modern high-speed routers with multiple ports are in adequate. In order to test a router thoroughly, it is prerequisite to emulate its external real working conditions. However, existing testing techniques a

8、re not fledged for this purpose. Sichuan Network Communication Key Laboratory (SC-NETCOM LAB) has been researchi ng on the tech niq ues for multi-port con curre nt test and develop ing the Con curre nt Multi-Port Test System (CMPTS), of which the Two Port Tester (TPT) forms an important part. The wo

9、rk presented in this dissertation is dedicated to TTCN-3 translation techniques for TPT, which translates the test control data in TTCN-3 to executable codes.There are two typical approaches in tran slati ng specificati ons in program ming Ian guages: in terpreti ng or compili ng, of which in terpre

10、ti ng approach is most widely used in han dli ng TTCN-3 specificatio ns. In view that moder n routers are high-speed devices with multi-ports, therefore short on-line processing time should have higher priority in system desig n compared with other features such as storage requireme nts and flexibil

11、ity in modification of executable codes, and consequently the compiling approach is adopted.Compiling of test specifications in TTCN-3 is similar to other compiling processes,which invoIve lexical analysis, syntax analysis, semantic analysis, and code gen erati on. In order to in corporate the compi

12、led codes with other parts in TPT, a two-stage compiling approach is designed: first the specifications in TTCN-3 is compiled in to C” and the n to compile in to machi ne executable codes. No code-optimization has been considered in TTCN-3/C compiling and left it for the C” compiler. The TTCN-3/C co

13、mpiler first scans the source code in TTCN-3, performs syn tax an alysis and sema ntic an alysis, and fin ally gen erates the C code via seanning through the syntax tree in conjunction with symbol tables.The authors work invoIves lexical analysis, syntax analysis, and semantic an alysis, and an emph

14、asis has bee n give n to tech niq uesof code gen erati on. As the TTCN-3/C compiler is the support tool for TPT, to some exte nt it is tester-depe ndent. Therefore, the resultant C” code for test control data has to be jointly compiled into machine code with C” code for the traverser (which traverse

15、s through a single test case) and with the E/D (Encoder/Decoder) of PDU (Protocol Data Units) of the protocol under test. The significance of work presented in the dissertation not only provides an important tool for TPT but also provides a basis for CMPTS under developme nt, which leaves the burde

16、n of con trol of a pair of ports to TPT.Key words: compiler, TTCN-3, syn tax an alysis, code gen erati on西南交通大學(xué)碩士研究生學(xué)位論文第VII頁(yè)西南交通大學(xué)碩士研究生學(xué)位論文第V頁(yè) TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 摘要I HYPERLINK l bookmark8 o Current Document Abstract1U.目錄V. HYPERLINK l bookmark12 o Current Documen

17、t 第1章緒論1. HYPERLINK l bookmark14 o Current Document 1.1本論文的研究背景 1. HYPERLINK l bookmark16 o Current Document 1.1.1研究IPv6網(wǎng)絡(luò)協(xié)議測(cè)試技術(shù)的意義 1 HYPERLINK l bookmark18 o Current Document 1.1.2國(guó)內(nèi)外IPv6路由器測(cè)試技術(shù)現(xiàn)狀 1 HYPERLINK l bookmark20 o Current Document IPv6路由器并發(fā)多端口測(cè)試系統(tǒng) 2 HYPERLINK l bookmark22 o Current Docume

18、nt 1.2.1傳統(tǒng)路由器測(cè)試技術(shù)與系統(tǒng)的局限性 2 HYPERLINK l bookmark24 o Current Document 1.2.2并發(fā)多端口測(cè)試技術(shù)與測(cè)試系統(tǒng) 3 HYPERLINK l bookmark26 o Current Document 1.2.3測(cè)試控制管理器與測(cè)試支撐工具 4 HYPERLINK l bookmark28 o Current Document 1.3本論文反映的研究與開(kāi)發(fā)工作及主要特點(diǎn) 5 HYPERLINK l bookmark30 o Current Document 1.4論文組織結(jié)構(gòu)6. HYPERLINK l bookmark32 o

19、Current Document 第2章TTCN-3/C編譯程序總體設(shè)計(jì)7 HYPERLINK l bookmark34 o Current Document 2.1 TTCN-3的發(fā)展及特點(diǎn) 7. HYPERLINK l bookmark36 o Current Document 2.2國(guó)內(nèi)外相關(guān)編譯技術(shù)研究現(xiàn)狀 8. HYPERLINK l bookmark38 o Current Document TTCN-3/C編譯程序的總體設(shè)計(jì) 8 HYPERLINK l bookmark40 o Current Document TTCN-3編譯階段劃分.8. HYPERLINK l bookma

20、rk42 o Current Document TTCN-3/C編譯程序設(shè)計(jì)范圍的界定 9 HYPERLINK l bookmark44 o Current Document TTCN-3/C編譯程序的階段 9 HYPERLINK l bookmark46 o Current Document 2.3.4編譯過(guò)程的“遍數(shù)” 10 HYPERLINK l bookmark48 o Current Document 第3章詞法、語(yǔ)法與語(yǔ)義分析 12 HYPERLINK l bookmark50 o Current Document 3.1詞法分析12 HYPERLINK l bookmark52

21、o Current Document 3.1.1詞法分析簡(jiǎn)介 12 HYPERLINK l bookmark54 o Current Document 3.1.2用LEX構(gòu)造詞法分析器 12 HYPERLINK l bookmark56 o Current Document 3.1.3詞法分析器的輸出結(jié)果 13 HYPERLINK l bookmark58 o Current Document 3.1.4詞法分析的錯(cuò)誤處理 15 HYPERLINK l bookmark60 o Current Document 3.2語(yǔ)法分析15 HYPERLINK l bookmark62 o Curren

22、t Document 321語(yǔ)法分析簡(jiǎn)介15 HYPERLINK l bookmark64 o Current Document 322用YACC工具構(gòu)造語(yǔ)法分析器 15 HYPERLINK l bookmark66 o Current Document 3.2.3與詞法分析的結(jié)合 1.6 HYPERLINK l bookmark68 o Current Document 3.2.4語(yǔ)法規(guī)則的沖突處理 17 HYPERLINK l bookmark76 o Current Document 3.2.5語(yǔ)法樹(shù)20 HYPERLINK l bookmark86 o Current Document

23、 3.2.6語(yǔ)法分析的錯(cuò)誤處理24 HYPERLINK l bookmark88 o Current Document 3.3語(yǔ)義分析24 HYPERLINK l bookmark90 o Current Document 3.3.1語(yǔ)義分析簡(jiǎn)介24 HYPERLINK l bookmark92 o Current Document 3.3.2在YACC中實(shí)現(xiàn)語(yǔ)義分析 24 HYPERLINK l bookmark94 o Current Document 3.3.3符號(hào)表25 HYPERLINK l bookmark98 o Current Document 3.3.4語(yǔ)義分析的輸出27 H

24、YPERLINK l bookmark108 o Current Document 3.3.5語(yǔ)義分析的錯(cuò)誤處理28 HYPERLINK l bookmark110 o Current Document 第4章代碼生成29 HYPERLINK l bookmark112 o Current Document 4.1代碼生成簡(jiǎn)介 29 HYPERLINK l bookmark114 o Current Document 4.2目標(biāo)代碼的形式29 HYPERLINK l bookmark116 o Current Document 4.3代碼生成的基本思路30 HYPERLINK l bookma

25、rk118 o Current Document 4.4與編解碼器的接口 31 HYPERLINK l bookmark120 o Current Document 4.5與單測(cè)試?yán)?qū)動(dòng)程序的接口問(wèn)題 32 HYPERLINK l bookmark122 o Current Document 4.6語(yǔ)法結(jié)構(gòu)的實(shí)現(xiàn)33 HYPERLINK l bookmark124 o Current Document TTCN-3類型的實(shí)現(xiàn).33 HYPERLINK l bookmark126 o Current Document TTCN-3聲明的實(shí)現(xiàn) .35 HYPERLINK l bookmark128

26、 o Current Document TTCN-3函數(shù)和可選步的實(shí)現(xiàn)37 HYPERLINK l bookmark136 o Current Document TTCN-3程序語(yǔ)句和操縱的實(shí)現(xiàn) 38 HYPERLINK l bookmark194 o Current Document TTCN-3預(yù)定義函數(shù)的實(shí)現(xiàn) 43 HYPERLINK l bookmark202 o Current Document 4.7語(yǔ)法規(guī)則的篩選45 HYPERLINK l bookmark204 o Current Document 第5章編譯程序的調(diào)試46 HYPERLINK l bookmark206 o

27、Current Document 5.1詞法和語(yǔ)法調(diào)試46 HYPERLINK l bookmark230 o Current Document 5.2編譯程序調(diào)試 49 HYPERLINK l bookmark242 o Current Document 5.3編譯程序的執(zhí)行 50 HYPERLINK l bookmark248 o Current Document 第6章總結(jié)與展望52 HYPERLINK l bookmark250 o Current Document 6.1論文工作總結(jié) 52 HYPERLINK l bookmark252 o Current Document 6.2后

28、續(xù)工作展望52 HYPERLINK l bookmark254 o Current Document 致謝54.參考文獻(xiàn)55攻讀碩士學(xué)位期間發(fā)表的論文及科研成果 58西南交通大學(xué)碩士研究生學(xué)位論文第 頁(yè)第1章緒論1.1本論文的研究背景1.1.1研究IPv6網(wǎng)絡(luò)協(xié)議測(cè)試技術(shù)的意義隨著In ternet的飛速發(fā)展,原有的IPv4協(xié)議集逐漸顯露出其IP地址匱乏、 存在網(wǎng)絡(luò)安全漏洞、不能適應(yīng)面向流的應(yīng)用數(shù)據(jù)傳輸?shù)娜秉c(diǎn)。為了解決In ternet目前和將來(lái)可能遇到的問(wèn)題,In ternet Engin eeri ng Task Force (IETF)定義了新的 網(wǎng)絡(luò)層協(xié)議“IPv6” 2 o IPv6

29、的出現(xiàn)使網(wǎng)絡(luò)層內(nèi)部的相關(guān)協(xié)議及網(wǎng)絡(luò)層以上的 協(xié)議,如與路徑信息交換和網(wǎng)絡(luò)管理相關(guān)的傳送層協(xié)議等也需要做相應(yīng)的適應(yīng) 性改造。以IPv6為基礎(chǔ)的網(wǎng)絡(luò)即被視為下一代In ternet (NGI)。網(wǎng)絡(luò)設(shè)計(jì)與運(yùn)行實(shí)踐表明,由于多方面原因,即使是同一協(xié)議或協(xié)議集的 實(shí)現(xiàn)并不一定完全符合相關(guān)的協(xié)議,也不一定能夠正確地交換信息,因此需要 對(duì)協(xié)議進(jìn)行是否符合相關(guān)標(biāo)準(zhǔn)的測(cè)試(Conformance Test)。對(duì)于重要的網(wǎng)絡(luò)設(shè)備 如路由器等,還需要對(duì)其性能指標(biāo)進(jìn)行測(cè)試。為此,從上世紀(jì)80年代初期,國(guó)際上就開(kāi)展了對(duì)網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)進(jìn)行測(cè)試的技術(shù)研究。國(guó)際標(biāo)準(zhǔn)化組織ISO并于80年代中期制訂了“ OSI協(xié)議測(cè)試框架”標(biāo)

30、準(zhǔn),即ISO IS 96463。我國(guó)網(wǎng)絡(luò)建設(shè)的發(fā)展需要大量的網(wǎng)絡(luò)產(chǎn)品,特別是路由器和交換機(jī)產(chǎn)品, 而過(guò)去由于我國(guó)自身缺少檢測(cè)手段,對(duì)外國(guó)產(chǎn)品只能全盤接受。目前我國(guó)正進(jìn) 行下一代In ternet的建設(shè),并進(jìn)行了大量的基于IPv6的產(chǎn)品開(kāi)發(fā)工作,迫切需 要對(duì)相關(guān)網(wǎng)絡(luò)產(chǎn)品的檢驗(yàn)手段和網(wǎng)絡(luò)檢測(cè)與維護(hù)手段。因此,研究相關(guān)測(cè)試技 術(shù)、獨(dú)立開(kāi)發(fā)我國(guó)的網(wǎng)絡(luò)產(chǎn)品測(cè)試系統(tǒng)和建立我國(guó)的網(wǎng)絡(luò)產(chǎn)品測(cè)試中心,就具 有十分重要的意義。1.1.2國(guó)內(nèi)外IPv6路由器測(cè)試技術(shù)現(xiàn)狀路由器作為In ternet的核心設(shè)備,在網(wǎng)絡(luò)產(chǎn)業(yè)的發(fā)展和網(wǎng)絡(luò)建設(shè)中占有舉足 輕重的地位,因此對(duì)以IPv6為基礎(chǔ)的路由器產(chǎn)品的測(cè)試技術(shù)的研究就具有特

31、殊 的意義。為了實(shí)現(xiàn)從IPv4向IPv6網(wǎng)絡(luò)的過(guò)渡,路由器對(duì)IPv6的支持大體上采 用兩種模式:一種是IPv6 over IPv4的模式,另一種是無(wú)IPv4的獨(dú)立IPv6模式。前者借助于已有的IPv4平臺(tái),將IPv6協(xié)議分組包裝在IPv4報(bào)文之中。這種模 式的優(yōu)點(diǎn)是IPv6網(wǎng)絡(luò)的實(shí)現(xiàn)可以依托現(xiàn)有的IPv4網(wǎng)絡(luò)進(jìn)行,其典型代表是IETF 的“ 6 bone Project。后者直接在數(shù)據(jù)鏈路層之上實(shí)現(xiàn)IPv6協(xié)議及其上層協(xié) 議,代表全新的一代產(chǎn)品,國(guó)際上有代表的大型系統(tǒng)包括歐美合作的MoonV6,我國(guó)八部委宣布在2005年聯(lián)合建設(shè)我國(guó)的基于IPv6的試驗(yàn)網(wǎng)也屬于這類新一 代的網(wǎng)絡(luò)。因此,對(duì)IPv

32、6路由器的測(cè)試也基于上述兩種模式進(jìn)行,即基于 IPv4 平臺(tái)的包裝測(cè)試(Encapsulation Test和直接在IPv6平臺(tái)上進(jìn)行測(cè)試。迄今為止對(duì)IP路由器測(cè)試大都采用ISO 9646規(guī)定的兩種抽象測(cè)試法,即回 繞測(cè)試法(LTM - Loop-back Test Method)和穿越測(cè)試法(TTM - Transverse Test Method)。后者是由我國(guó)學(xué)者在英國(guó)工作期間提出來(lái), 經(jīng)英國(guó)ISO對(duì)口工作組 建議,被ISO接納為測(cè)試網(wǎng)絡(luò)中繼系統(tǒng)的標(biāo)準(zhǔn)測(cè)試法之一 。從80年代中期開(kāi)始我國(guó)也逐步開(kāi)始涉足網(wǎng)絡(luò)協(xié)議測(cè)試技術(shù)的研究以及測(cè)試 系統(tǒng)的開(kāi)發(fā),過(guò)去大量的工作是針對(duì)端系統(tǒng)(End-Syst

33、em)進(jìn)行的。國(guó)內(nèi)對(duì)路由器的測(cè)試工作近年才進(jìn)行,包括清華大學(xué)、中科大IPv6小組9、北京郵電大學(xué)的IPv6研究小組10、中山大學(xué)IPv6學(xué)生實(shí)驗(yàn)網(wǎng)11、蘭州大學(xué)IPv6實(shí)驗(yàn)床 12等,多數(shù)采用基于IPv4的“包裝”測(cè)試。1.2 IPv6路由器并發(fā)多端口測(cè)試系統(tǒng)1.2.1傳統(tǒng)路由器測(cè)試技術(shù)與系統(tǒng)的局限性如圖1-1所示,ISO 9646建議的回繞測(cè)試方法(LTM )進(jìn)行測(cè)試時(shí),測(cè) 試器將測(cè)試數(shù)據(jù)的目的地址填為測(cè)試器的地址,被測(cè)路由器收到該數(shù)據(jù)時(shí),查 詢路徑表后會(huì)將該測(cè)試數(shù)據(jù)返回到測(cè)試器,因此,這種測(cè)試方法稱為回繞測(cè)試 法。LTM實(shí)現(xiàn)簡(jiǎn)單,但一次只能測(cè)試到單個(gè)端口的相關(guān)協(xié)議實(shí)現(xiàn),因此測(cè)試能 力不強(qiáng)。

34、曾華燊教授在對(duì)LTM進(jìn)行深入研究后提出的穿越測(cè)試法(TTM )能夠同 時(shí)對(duì)一對(duì)端口進(jìn)行測(cè)試,如圖1-2。該測(cè)試法要求兩個(gè)測(cè)試器各自觀察一個(gè)路由 器端口,因此從測(cè)試器1發(fā)出的測(cè)試控制數(shù)據(jù)經(jīng)被測(cè)路由器轉(zhuǎn)發(fā)到另一端口, 再到達(dá)測(cè)試器2。實(shí)際上,在In ternet環(huán)境中,只要將兩個(gè)測(cè)試器置于同一測(cè)試 系統(tǒng)之中,兩個(gè)測(cè)試器分別使用不同的IP地址,便很容易實(shí)現(xiàn)對(duì)一對(duì)IP路由器端口的嚴(yán)格控制下的測(cè)試,也容易實(shí)現(xiàn)測(cè)試器1和2之間的協(xié)調(diào)。由于在同一測(cè)試過(guò)程中涉及被測(cè)路由器的兩個(gè)端口,因而能夠測(cè)試模擬路由器一對(duì)端口工作狀態(tài)和外部行為的情況。由于該方法的測(cè)試路徑穿過(guò)了路由器,因此被稱 為“穿越測(cè)試法”??紤]到路由

35、器的端口數(shù)通常大于 2,采用TTM僅能夠?qū)σ粚?duì)端口進(jìn)行受控 測(cè)試;而采用多個(gè)雙端口測(cè)試器對(duì)路由器分別進(jìn)行測(cè)試,現(xiàn)有的測(cè)試技術(shù)中尚 缺少:多個(gè)測(cè)試器間的協(xié)調(diào)與同步機(jī)制。路由器實(shí)質(zhì)上是包括應(yīng)用層協(xié)議在內(nèi) 的信令控制平面和管理平面的協(xié)議集,單對(duì)端口測(cè)試技術(shù)不能反映不同端口之 間在三個(gè)平臺(tái)上協(xié)議活動(dòng)的相互影響。現(xiàn)有的測(cè)試控制數(shù)據(jù)描述語(yǔ)言TTCN-3不具備描述測(cè)試并行性,特別是 并發(fā)特征的能力。正因?yàn)槿绱耍壳暗臏y(cè)試難以模擬多端口路由器的外部實(shí)際工作環(huán)境、夕卜 部網(wǎng)絡(luò)信息流的分布和最低性能指標(biāo),因而測(cè)試功能不全面。被測(cè)路由器測(cè)試器1 測(cè)試器2中繼/測(cè)試器1測(cè)試器2被測(cè)路由器說(shuō)明:測(cè)試器1和測(cè)試器2在物理

36、 上可以設(shè)計(jì)在一個(gè)系統(tǒng)之中。圖1-1回繞測(cè)試法示意圖圖1-2穿越測(cè)試法示意圖1.2.2并發(fā)多端口測(cè)試技術(shù)與測(cè)試系統(tǒng)四川省網(wǎng)絡(luò)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室為了解決以上問(wèn)題,著手研究多端口路由器的并發(fā)測(cè)試技術(shù)。實(shí)驗(yàn)室首先提出了多端口同步并行穿越測(cè)試法(MSP-TTM-Multi-port Synchronized Parallel -Transverse Test Method并定義了并發(fā)多端口 測(cè)試定義語(yǔ)言(CMP-TDL - Concurrent Multi-Port Test Definition Language) 13-15。 MSP-TTM要求測(cè)試系統(tǒng)能夠在嚴(yán)格的控制下,對(duì)多個(gè)雙端口測(cè)試器(TP

37、T -Two-Port Tester)進(jìn)行協(xié)調(diào)和同步,實(shí)現(xiàn)對(duì)多個(gè)端口對(duì)的并行測(cè)試。由于相關(guān)的 測(cè)試系統(tǒng)具有完整的并行測(cè)試和并發(fā)測(cè)試的同步與協(xié)調(diào)機(jī)制,因而能夠?qū)崿F(xiàn)對(duì) 路由器的多個(gè)端口的輸入數(shù)據(jù)的并發(fā)特征的模擬和各類數(shù)據(jù)到達(dá)率的模擬,從而使多端口并發(fā)測(cè)試系統(tǒng)能夠完整地模擬多端口路由器的實(shí)際工作的外部環(huán) 境。鑒于TTCN-3不能描述并行測(cè)試之間的同步協(xié)調(diào)和控制的機(jī)制,因此需要 一種新的測(cè)試控制數(shù)據(jù)定義語(yǔ)言,我們稱之為并發(fā)多端口測(cè)試定義語(yǔ)言 CMP-TDL。CMP-TDL的核心功能是描述端口對(duì)的并行測(cè)試進(jìn)程間的任務(wù)指派、 協(xié)調(diào)和同步,相關(guān)的單對(duì)端口的測(cè)試控制數(shù)據(jù)將借用增強(qiáng)后的 TTCN-3來(lái)描述Coo

38、rdination commands & responsesml三:e : :cmpTM 團(tuán)席i諭時(shí)際窗翻畫(huà)翕蟲(chóng)iCoordination commands & responsesMultiple test-threadC- CompilerUTTCN-3 CompilerMATS in :Two-P Testeort r iTw( Teb-Port ster kTwo-POrt Tester 1Two-Port Tester nTest Data &Test Data &responsesresponsesRouter Under Test (RUT)Test Data & J respon

39、sesTest Data & responsesTestCMPTSTools;:;TTCN-3 一:CMPTDLCompilerATS inI I -I 9 I:CMPTDL圖1-3 CMPTE系統(tǒng)結(jié)構(gòu)與測(cè)試?yán)喂ぞ呓柚贛SP-TTM測(cè)試方法和CMP-TDL語(yǔ)言,目前實(shí)驗(yàn)室正在開(kāi)發(fā)多端口 IP 路由器的并發(fā)測(cè)試系統(tǒng)(CMPTS - Concurrent Multi-Port Test System 14。CMPTS具有如圖1-3左邊所示的兩級(jí)結(jié)構(gòu),上級(jí)為并發(fā)多端口測(cè)試管理器(CMPTM Concurrent Multi-Port Test Manage)處理并行測(cè)試同步與協(xié)調(diào)問(wèn)題; 下級(jí)多

40、個(gè)TPT分別處理一對(duì)端口的測(cè)試問(wèn)題。TPT既可以在CMPTM控制下對(duì) 指定的端口對(duì)進(jìn)行測(cè)試,也可以獨(dú)立地作為便攜式雙端口測(cè)試器。CMPTM與TPT之間通過(guò)局域網(wǎng)進(jìn)行通信。并發(fā)多端口測(cè)試系統(tǒng)由于能夠模擬多端口路由器的實(shí)際運(yùn)行環(huán)境,因而可 克服單對(duì)端口測(cè)試系統(tǒng)不能全面測(cè)試和評(píng)價(jià)多端口路由器的缺點(diǎn)。經(jīng)過(guò)查新, 至今尚未見(jiàn)國(guó)內(nèi)、外有類似的研究工作報(bào)道。1.2.3測(cè)試控制管理器與測(cè)試支撐工具如圖1-3所示,并發(fā)多端口測(cè)試環(huán)境 (CMPTE -Concurrent Multi-Port TestEnvironment)由 CMPTS 和測(cè)試支撐工具(Test Support Tools兩部分組成。CMPT

41、S 是測(cè)試過(guò)程控制器,由CMPTM控制可執(zhí)行測(cè)試控制數(shù)據(jù)(MTET - MultipleTest-thread Executable Test )的多線程運(yùn)行來(lái)實(shí)現(xiàn)并行測(cè)試過(guò)程的同步與協(xié)調(diào)。 MTET是用CMP-TDL語(yǔ)言描述的測(cè)試控制數(shù)據(jù)中與并行測(cè)試相關(guān)的部分經(jīng)過(guò) 編譯后形成的可執(zhí)行程序。測(cè)試支撐工具的任務(wù)是將用某種語(yǔ)言描述的抽象測(cè)試數(shù)據(jù)(Abstract Tests)轉(zhuǎn)變?yōu)榭蓤?zhí)行的測(cè)試數(shù)據(jù)(Executable Tests)。在CMPTE中,測(cè)試支撐工具包 括 CMP-TDL、TTCN-3、CMP-TDL編譯程序和 TTCN-3/C 編譯程序。其中 CMP-TDL編譯的結(jié)果包括與并行測(cè)試相

42、關(guān)部分的 C代碼和TTCN-3測(cè)試數(shù)據(jù)兩 部分,本文不涉及 CMP-TDL編譯程序,筆者的工作是關(guān)于 TTCN-3/C編譯程 序的設(shè)計(jì)與實(shí)現(xiàn)。TTCN-3(Test and Test Control Notation version 3) 16是 TTCN (Tree and Table Combined Notation) 17的第三版。TTCN是ISO定義的“樹(shù)表結(jié)合的標(biāo)記語(yǔ)言”, 它是用樹(shù)表結(jié)構(gòu)來(lái)描述測(cè)試集和測(cè)試?yán)陌胄问交Z(yǔ)言。與其它高級(jí)程序設(shè)計(jì)語(yǔ)言類似,用 TTCN-3描述的抽象測(cè)試數(shù)據(jù)不能直接 用于實(shí)際測(cè)試,需要將其轉(zhuǎn)換成可執(zhí)行的測(cè)試數(shù)據(jù)。這一轉(zhuǎn)換過(guò)程通常可由兩 類程序來(lái)完成:TT

43、CN-3編譯器(Compiler)和TTCN-3解釋器(Interpreter)。目前 已有的測(cè)試系統(tǒng)中采用解釋方式的較多,即“邊解釋邊執(zhí)行”的測(cè)試方式。解 釋方式的優(yōu)點(diǎn)是:因?yàn)槊看螠y(cè)試都要重新掃描和解釋用TTCN-3描述的測(cè)試控制數(shù)據(jù),因此修改和調(diào)試測(cè)試控制數(shù)據(jù)較為方便。但也正因?yàn)槿绱耍?lián)機(jī)處理 時(shí)花在解釋上的時(shí)間較多,不利于提高測(cè)試效率,也不適合實(shí)時(shí)性要求較高的 測(cè)試場(chǎng)合。筆者及其同事在分析了現(xiàn)代高速路由器的測(cè)試需要的基礎(chǔ)上,在存儲(chǔ)空間 的占用量和“可執(zhí)行代碼”修改的方便性,與測(cè)試實(shí)時(shí)性要求的矛盾中,選擇 了“縮短聯(lián)機(jī)處理時(shí)間”優(yōu)先的策略,采用對(duì) TTCN-3描述的測(cè)試控制數(shù)據(jù)進(jìn) 行編譯的

44、技術(shù)路線。1.3本論文反映的研究與開(kāi)發(fā)工作及主要特點(diǎn)以多端口路由器的并發(fā)測(cè)試技術(shù)的研究為背景,本論文所反映的工作是筆 者參與并初步完成的TTCN-3/C語(yǔ)言的編譯程序。在完成本論文相關(guān)的研究與 開(kāi)發(fā)工作中,筆者的工作涉及以下幾個(gè)方面:1)研究TTCN-3核心語(yǔ)言,掌握其語(yǔ)法和語(yǔ)義規(guī)則。這是實(shí)現(xiàn)TTCN-3編 譯程序的必備基礎(chǔ)。2)研究編譯原理和技術(shù),結(jié)合TTCN-3的特點(diǎn),與王文娟同學(xué)一道完成了 TTCN-3/C編譯程序的總體設(shè)計(jì)。3)研究詞法分析技術(shù),與王文娟同學(xué)一起,利用LEX工具實(shí)現(xiàn)了詞法分析器。4)研究語(yǔ)法分析技術(shù),以王文娟同學(xué)為主,利用YACC工具共同實(shí)現(xiàn)了語(yǔ) 法分析器。5)重點(diǎn)研究

45、目標(biāo)代碼生成技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了 TTCN-3語(yǔ)法規(guī)則的一個(gè)子 集的編譯。本論文研究工作的主要特點(diǎn)在于:1)在國(guó)內(nèi)外對(duì) TTCN/TTCN-3 描述的抽象測(cè)試集(ATS - Abstract Test Suite)大多采用解釋方式執(zhí)行的情況下,本論文探索性地采用編譯方式來(lái)執(zhí)行, 更加適應(yīng)對(duì)高速路由設(shè)備進(jìn)行測(cè)試,特別是并發(fā)和性能測(cè)試的需要。2)采用兩步編譯的方式,將 TTCN-3描述的ATS編譯成C代碼,以便與測(cè)試系統(tǒng)的其它部分代碼聯(lián)合編譯,最終生成可執(zhí)行測(cè)試集ETS。3)在國(guó)內(nèi)首次探索關(guān)于TTCN-3語(yǔ)言的編譯技術(shù)。盡管國(guó)外已有了 TTCN-3/C18和TTCN-3/Java19編譯器的研究與開(kāi)

46、發(fā),但國(guó) 內(nèi)除中科院成都計(jì)算機(jī)應(yīng)用研究所在 20世紀(jì)80年代末期,進(jìn)行過(guò)第一版TTCN 的編譯程序的開(kāi)發(fā)工作20外,至今尚無(wú)人開(kāi)發(fā)過(guò)TTCN-3的編譯程序。TTCN-3 在第一版TTCN的基礎(chǔ)上增加了許多新的功能和特點(diǎn)21,因此該編譯器的設(shè)計(jì) 與開(kāi)發(fā)仍有較大的價(jià)值。1.4論文組織結(jié)構(gòu)本論文的后續(xù)章節(jié)主要反映筆者所涉及的研究工作,其組織結(jié)構(gòu)如下:第2章在簡(jiǎn)要地介紹了 TTCN-3語(yǔ)言及其發(fā)展和相關(guān)編譯技術(shù)現(xiàn)狀之后, 介紹了筆者參與的TTCN-3/C編譯程序的總體設(shè)計(jì)方案,確立了兩遍掃描的編 譯結(jié)構(gòu)。第3章討論TTCN-3/C編譯程序的詞法、語(yǔ)法和語(yǔ)義分析技術(shù),以及 相關(guān)程序的設(shè)計(jì)。該章的重點(diǎn)是用

47、LEX構(gòu)造詞法分析器,以及用YACC構(gòu)造語(yǔ) 法分析器的方法;對(duì)解決語(yǔ)法沖突、構(gòu)造語(yǔ)法樹(shù)和維護(hù)符號(hào)表等問(wèn)題也作了相 應(yīng)的討論。第4章詳細(xì)討論了代碼生成的設(shè)計(jì),重點(diǎn)在于其基本思路和各類語(yǔ) 法結(jié)構(gòu)的實(shí)現(xiàn)。第5章簡(jiǎn)要地討論了對(duì)編譯程序的調(diào)試方法和調(diào)試實(shí)踐。最后, 第6章在對(duì)論文工作進(jìn)行總結(jié)的基礎(chǔ)上,對(duì)后續(xù)研究工作進(jìn)行了分析和展望。第2章TTCN-3/C編譯程序總體設(shè)計(jì)2.1 TTCN-3的發(fā)展及特點(diǎn)TTCN17是一種通過(guò)樹(shù)表結(jié)構(gòu)來(lái)描述測(cè)試集和測(cè)試?yán)陌胄问交Z(yǔ)言,其最早于1992年被列入ISO/IEC 9646-3和CCITT Rec.X.292標(biāo)準(zhǔn)文本中。TTCN以 其友好的表格形式、判決系統(tǒng)和一致

48、性匹配機(jī)制逐漸成為了協(xié)議一致性測(cè)試的 規(guī)范語(yǔ)言,并廣泛應(yīng)用于各大標(biāo)準(zhǔn)化組織和工業(yè)領(lǐng)域。由于第一版的TTCN不能描述測(cè)試系統(tǒng)內(nèi)部、被測(cè)系統(tǒng)內(nèi)部以及他們之間的并發(fā)行為,1998年ISO/IEC 和ITU-T發(fā)布了第二版TTCN(TTCN-2)22,它在前一版本的基礎(chǔ)上提出了并 發(fā)機(jī)制和許多新的概念,實(shí)現(xiàn)了模塊的重用和封裝,同時(shí)還以一種簡(jiǎn)單的聲明 實(shí)現(xiàn)了 ASN.1 (Abstract Syntax Notation 1)23,24的解碼。由于 TTCN-2 仍然是基于 OSI ( Open Systems Interconnectior)一致性測(cè)試 設(shè)計(jì)開(kāi)發(fā),因而不能應(yīng)用于其它類型的測(cè)試,如互操作

49、性測(cè)試、健壯性測(cè)試、 回歸測(cè)試、系統(tǒng)測(cè)試和集成測(cè)試等,和更廣泛的技術(shù)領(lǐng)域。ETSI于2000年10月發(fā)布的第三代TTCN標(biāo)準(zhǔn)(TTCN-3) 16是一種更靈活,功能更強(qiáng)大的測(cè)試描 述語(yǔ)言,同時(shí)將之列入了 ITU-T Z.140系列。最初的TTCN-3標(biāo)準(zhǔn)分3個(gè)部分:核心語(yǔ)言(Core Language)16、類似于 TTCN 的表格表示形式(Tabular Presentation Format,TFT25、基于 MSC(Message SequenceChart)的圖形化表示形式(Graphical Presentation Format,GFT) 26。 2003年3月16 日,ETSI發(fā)

50、布的TTCN-3修訂版不僅對(duì)原有三部分進(jìn)行了改進(jìn) 和提高,還提出三個(gè)新的部分:TTCN-3的操作語(yǔ)法27、運(yùn)行接口( TTCN-3Run time In terface,TRI)28和控制接口( TTCN-3 Control In terface ,TCI) 29。TTCN-3使用靈活、功能強(qiáng)大,能通過(guò)各種通信接口應(yīng)用于不同的測(cè)試系統(tǒng), 它在TTCN-2的基礎(chǔ)上增加了許多新的功能21,比如:不同的表示形式。動(dòng)態(tài)并發(fā)的測(cè)試配置。同步和異步通信操作。信息編碼和其它屬性的描述。數(shù)據(jù)和簽名模板具有功能強(qiáng)大的匹配機(jī)制。類型和值的參數(shù)化。測(cè)試判決的制定和處理。測(cè)試集的參數(shù)化和測(cè)試?yán)倪x擇機(jī)制。TTCN-3

51、與ASN.1以及其它語(yǔ)言(如IDL30、UML 31)的聯(lián)合使用2.2國(guó)內(nèi)外相關(guān)編譯技術(shù)研究現(xiàn)狀早在80年代,在TTCN標(biāo)準(zhǔn)剛制定后不久,國(guó)內(nèi)外就有一些研究機(jī)構(gòu)對(duì) TTCN支撐工具進(jìn)行研究。一些研究機(jī)構(gòu)把用TTCN描述的測(cè)試集轉(zhuǎn)換為各自的測(cè)試描述語(yǔ)言的形式,再轉(zhuǎn)換為可執(zhí)行測(cè)試集。比如英國(guó)國(guó)家物理實(shí)驗(yàn)室將 TTCN轉(zhuǎn)換為測(cè)試描述語(yǔ)言TDL32,加拿大IDICOM公司將TTCN轉(zhuǎn)換為其專 用測(cè)試語(yǔ)言ITL 0 TDL通過(guò)編譯而ITL則采用解釋的形式來(lái)執(zhí)行測(cè)試集。而另 外一些研究機(jī)構(gòu)則直接將TTCN描述的測(cè)試集進(jìn)行解釋或編譯。比如國(guó)際上有 的研究機(jī)構(gòu)曾對(duì)TTCN的直接解釋執(zhí)行做了嘗試33,34;國(guó)內(nèi)

52、對(duì)TTCN的支撐工 具開(kāi)發(fā)得比較成功和完善的是中科院成都計(jì)算機(jī)應(yīng)用研究所在開(kāi)發(fā)OSI第4類傳送層協(xié)議測(cè)試系統(tǒng)時(shí)所開(kāi)發(fā)的 TTCN編譯器20 o近些年,隨著TTCN-3的普及和IPv6測(cè)試系統(tǒng)的出現(xiàn),一些研究機(jī)構(gòu)正在 研究開(kāi)發(fā)TTCN-3支撐工具。例如18公司開(kāi)發(fā)出的TTthree系列 工具,實(shí)現(xiàn)了對(duì)TTCN 3到C語(yǔ)言的編譯以及TTCN-3至到 JAVA語(yǔ)言的編譯; 35公司開(kāi)發(fā)的 OpenTTCN測(cè)試儀工具中的 TTCN 3編譯 器;國(guó)內(nèi)的TTCN-3支撐工具的開(kāi)發(fā)多為TTCN-3解釋器33。2.3 TTCN-3/C編譯程序的總體設(shè)計(jì)2.3.1 TTCN-3編譯階段劃分TTCN-3描述的測(cè)試

53、控制數(shù)據(jù)(測(cè)試?yán)?組/集)到可執(zhí)行測(cè)試數(shù)據(jù)的編譯過(guò) 程,一般分為兩個(gè)步驟。第一個(gè)步驟是將 TTCN-3描述的測(cè)試控制數(shù)據(jù)編譯成 某種程序設(shè)計(jì)語(yǔ)言的表達(dá)形式,第二步再利用該程序設(shè)計(jì)語(yǔ)言的編譯程序編譯 成可執(zhí)行測(cè)試數(shù)據(jù)。這樣做具有多方面的優(yōu)點(diǎn)。首先,它可以利用現(xiàn)有的程序 設(shè)計(jì)語(yǔ)言的編譯程序?qū)崿F(xiàn)向機(jī)器代碼的轉(zhuǎn)換功能,因而不必與機(jī)器代碼打交道, 將研究的重點(diǎn)放在TTCN-3和高級(jí)語(yǔ)言的轉(zhuǎn)換上。其次,它容易實(shí)現(xiàn)將編譯的 中間結(jié)果,即某種程序設(shè)計(jì)語(yǔ)言表達(dá)的代碼,與用同種程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)的測(cè)試系統(tǒng)其它部件的實(shí)現(xiàn)代碼進(jìn)行聯(lián)合編譯,得到完整的可執(zhí)行測(cè)試程序。最后, 由于大眾化的程序設(shè)計(jì)語(yǔ)言都具有較好的可移植性,

54、因此TTCN-3編譯程序和編譯中間代碼都便于在多種平臺(tái)之間移植。本編譯器采用的就是這種設(shè)計(jì)思路,即設(shè)計(jì)為TTCN-3到C語(yǔ)言的編譯器。 TTCN-3測(cè)試?yán)?jīng)過(guò)編譯生成完整的 C程序文件,再用通用的C編譯器及相關(guān) 鏈接、裝載工具,生成最終可執(zhí)行的程序。232 TTCN-3/C編譯程序設(shè)計(jì)范圍的界定TTCN-3是一個(gè)相當(dāng)復(fù)雜的測(cè)試控制描述語(yǔ)言,其中許多功能在測(cè)試實(shí)踐中 可以不用或難于理解。從IPv6路由器測(cè)試的需要和開(kāi)發(fā)周期上的考慮,我們界 定第一版的TTCN-3/C編譯程序只支持TTCN-3功能的一個(gè)子集。由于我們選 擇了 C語(yǔ)言作為中間語(yǔ)言,因此,在滿足測(cè)試需要的前提下,盡量選擇了 TTCN-

55、3 中其語(yǔ)法和語(yǔ)義較容易在C中找到對(duì)應(yīng)關(guān)系的語(yǔ)法結(jié)構(gòu),特別是那些容易實(shí)現(xiàn) 直接轉(zhuǎn)換或者通過(guò)構(gòu)造C語(yǔ)言的類(Class)結(jié)構(gòu)來(lái)實(shí)現(xiàn)的語(yǔ)法結(jié)構(gòu)。對(duì)于錯(cuò)誤處理,在詞法和語(yǔ)法分析階段,我們簡(jiǎn)單地報(bào)告出錯(cuò)地點(diǎn),然后 停止編譯。而在語(yǔ)義分析階段,我們報(bào)告出錯(cuò)地點(diǎn)和具體的錯(cuò)誤類型,但并不 停止編譯。2.3.3 TTCN-3/C編譯程序的階段編譯器36-38是將一種語(yǔ)言翻譯為另一種語(yǔ)言的計(jì)算機(jī)程序。編譯器以某種 語(yǔ)言(Source Language )編寫的程序作為輸入(源程序),經(jīng)過(guò)處理生成與源 程序等價(jià)的用目標(biāo)語(yǔ)言(Target Language表達(dá)的程序。編譯程序的工作一般可以分為五個(gè)主要階段:詞法分析

56、、語(yǔ)法分析、語(yǔ)義 分析、中間代碼產(chǎn)生、目標(biāo)代碼生成36。TTCN-3/C編譯程序的設(shè)計(jì)可以參照這 五個(gè)階段劃分相關(guān)的功能模塊。編譯程序中一般還應(yīng)包括“表格管理”和“出 錯(cuò)處理”兩部分內(nèi)容。在編譯程序中最重要的表格是符號(hào)表,它記錄源程序中 定義的所有名字以及其各種屬性36。根據(jù)需要,編譯程序還可能包括對(duì)生成的 代碼進(jìn)行優(yōu)化的過(guò)程。不過(guò)考慮到在本設(shè)計(jì)中功能盡可能簡(jiǎn)化,加上后續(xù)的C編譯器大多具有代碼優(yōu)化的功能,所以目前的TTCN-3/C編譯器中未考慮代碼優(yōu)化的問(wèn)題。圖2-1為典型編譯程序的編譯階段和功能劃分示意圖36。源程序目標(biāo)程序圖2-1典型編譯器程序階段和功能劃分234編譯過(guò)程的“遍數(shù)”上一節(jié)討

57、論的編譯程序的五個(gè)階段,是按邏輯功能進(jìn)行劃分的。具體實(shí)現(xiàn) 時(shí),考慮到源語(yǔ)言的差異、設(shè)計(jì)要求以及實(shí)際處理的方便性和合理性等因素, 往往很難一次完成全部的編譯工作,而需要從頭到尾對(duì)源程序或源程序的中間 結(jié)果進(jìn)行多次掃描,每一次掃描僅完成部分加工處理,并生成中間結(jié)果或目標(biāo) 程序。掃描一次在編譯術(shù)語(yǔ)中稱為一 “遍”(PASS)36。編譯器掃描遍數(shù)的確定主要是在時(shí)間和空間效率上進(jìn)行權(quán)衡37,此外也涉及算法復(fù)雜度的問(wèn)題,因 此在一遍掃描過(guò)程中,可能會(huì)處理圖 2-1中的多個(gè)階段功能。如果只采用一遍掃描,編譯程序在設(shè)計(jì)和實(shí)現(xiàn)上難度太大,生成的編譯器 難以維護(hù);多遍掃描對(duì)路由器的測(cè)試效率影響較大;而兩遍掃描,由

58、于前后兩 遍的設(shè)計(jì)相對(duì)獨(dú)立而本編譯器由兩個(gè)小組成員分別完成,可以較明確地進(jìn)行小 組分工與合作,因此本編譯器采用了兩遍掃描處理的方式。如圖2-2所示,第一遍掃描讀入TTCN-3源程序,并對(duì)其進(jìn)行詞法分析、語(yǔ)法分析和語(yǔ)義分析, 其輸出為語(yǔ)法樹(shù)和符號(hào)表。第二遍掃描的輸入是第一遍生成的語(yǔ)法樹(shù),通過(guò)對(duì) 語(yǔ)法樹(shù)的遍歷,結(jié)合符號(hào)表登記的信息來(lái)生成C代碼。筆者的研究重點(diǎn)是第二遍掃描,即C代碼生成方面的工作。圖2-2 TTCN-3/C編譯器的遍第3章詞法、語(yǔ)法與語(yǔ)義分析3.1詞法分析3.1.1詞法分析簡(jiǎn)介詞法分析是編譯過(guò)程的第一個(gè)階段。這個(gè)階段的主要任務(wù)是從左到右逐個(gè)字符地讀入TTCN-3源程序,產(chǎn)生單詞符號(hào)序

59、列,以提交給語(yǔ)法分析使用38。詞法分析還可以完成一些相關(guān)的輔助任務(wù)37,個(gè)是濾掉源程序中的注釋、空 格、制表符和換行符等不影響程序執(zhí)行的代碼,另一個(gè)是使編譯器能將發(fā)現(xiàn)的 錯(cuò)誤信息與源程序的出錯(cuò)位置聯(lián)系起來(lái)。編譯技術(shù)發(fā)展到現(xiàn)在,詞法分析已經(jīng)非常成熟,并有了很多通用的工具, 因?yàn)樵~法分析通常與編譯程序的源語(yǔ)言和目標(biāo)語(yǔ)言無(wú)關(guān)。詞法分析的基礎(chǔ)是源 語(yǔ)言的詞法規(guī)則,一般用正則表達(dá)式36來(lái)表示。3.1.2用LEX構(gòu)造詞法分析器最具代表性的詞法分析器生成工具是LEX39-42系列,本編譯器采用其中的FLEX42版本。如圖3-1所示,LEX的輸入為L(zhǎng)EX語(yǔ)言的程序,它包含對(duì)源語(yǔ) 言詞法構(gòu)成的正規(guī)式描述,詞法分

60、析器對(duì)詞法結(jié)構(gòu)識(shí)別匹配后的即時(shí)處理動(dòng)作, 以及其它輔助過(guò)程三大部分。經(jīng)過(guò)LEX工具的編譯,將該LEX語(yǔ)言的程序轉(zhuǎn)換為一個(gè)C宿主語(yǔ)言的程序yylex。將yylex加入到我們的編譯器中,就是我們 的詞法分析器。FLEX的通用性、可靠性和以 C為宿主語(yǔ)言等特點(diǎn)是我們選擇 的主要原因。LEX源程序輸入串圖3-1 LEX在編譯系統(tǒng)中的作用LEX源程序的格式如下38:說(shuō)明部分%轉(zhuǎn)換規(guī)則%輔助過(guò)程在本編譯器中,LEX的輸入文件為TTCN.L。在TTCN.L的說(shuō)明部分定義 了 29個(gè)正規(guī)式,它們決定了 TTCN-3的詞法構(gòu)成,并區(qū)分了換行符和其它的空 白字符;轉(zhuǎn)換規(guī)則部分定義了單詞識(shí)別的即時(shí)處理,通常是返回一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論