版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程實(shí)驗(yàn)概述 1實(shí)驗(yàn)一 詞法分析器程序的實(shí)現(xiàn) 21.1 問(wèn)題描述 21.1.1 實(shí)驗(yàn)內(nèi)容 21.1.2 實(shí)驗(yàn)原理 21.2 程序設(shè)計(jì) 31.2.1 實(shí)驗(yàn)要求 31.2.2 實(shí)驗(yàn)流程圖 51.3 實(shí)驗(yàn)結(jié)果 6實(shí)驗(yàn)二語(yǔ)法分析程序?qū)崿F(xiàn) 72.1 實(shí)驗(yàn)?zāi)康呐c要求 72.2 實(shí)驗(yàn)內(nèi)容 72.3 實(shí)驗(yàn)要求 72.4 程序設(shè)計(jì) 82.4.1 算法任務(wù) 82.4.2 全局變量的設(shè)置 82.4.3 主程序 main 算法流程圖 82.4.4 掃描子程序scanner()的算法流程圖 92.4.5 rparser ()的算法流程圖 102.4.6 語(yǔ)句串分析程序yucu ()的算法流程圖 102.4.7 stat
2、ement語(yǔ)句分析算法流程圖 112.5 實(shí)驗(yàn)結(jié)果 12實(shí)驗(yàn)總結(jié) 14彈中科技大掌課程實(shí)驗(yàn)報(bào)告課程名稱:編譯原理計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程實(shí)驗(yàn)概述詞法分析是編譯的第一階段。詞法分析器的主要任務(wù)是讀入源程序的輸入字 符、將他們組成詞素,生成并輸出一個(gè)詞法單元序列,每個(gè)詞法單元對(duì)應(yīng)一個(gè)詞 素。這個(gè)詞法單元序列被輸出到語(yǔ)法分析器進(jìn)行語(yǔ)法分析。詞法分析器的功能輸入源程序,按照構(gòu)詞規(guī)則分解成一系列單詞符號(hào)。單詞 是語(yǔ)言中具有獨(dú)立意義的最小單位,包括關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符、界符和常量 等(1)關(guān)鍵字是由程序語(yǔ)言定義的具有固定意義的標(biāo)識(shí)符。例如,Pascal中 的begin , end, if , while
3、都是保留字。這些字通常不用作一般標(biāo)識(shí)符。(2)標(biāo)識(shí)符 用來(lái)表示各種名字,如變量名,數(shù)組名,過(guò)程名等等。(3)常數(shù) 常數(shù)的類型一般有整型、實(shí)型、布爾型、文字型等。(4)運(yùn)算符如+、-、*、/等等。(5)界符 如逗號(hào)、分號(hào)、括號(hào)、等等。詞法分析器所輸出單詞符號(hào)常常表示成如下的二元式:(單詞種別,單詞符號(hào)的屬性值)單詞種別通常用整數(shù)編碼。標(biāo)識(shí)符一般統(tǒng)歸為一種。常數(shù)則宜按類型(整、 實(shí)、布爾等)分種。關(guān)鍵字可將其全體視為一種。運(yùn)算符可采用一符一種的方法。 界符一般用一符一種的方法。對(duì)于每個(gè)單詞符號(hào),除了給出了種別編碼之外,還 應(yīng)給出有關(guān)單詞符號(hào)的屬性信息。單詞符號(hào)的屬性是指單詞符號(hào)的特性或特征。11.
4、2程序設(shè)計(jì)實(shí)驗(yàn)一 詞法分析器程序的實(shí)現(xiàn)1.1 問(wèn)題描述1.1.1 實(shí)驗(yàn)內(nèi)容1.完成詞法分析器實(shí)現(xiàn)的功能如下:(1)組織源程序的輸入(2)拼出單詞并查找其類別編號(hào),形成二元式輸出,得到單詞流文件(3)刪除注釋、空格和無(wú)用符號(hào)(4)發(fā)現(xiàn)并定位詞法錯(cuò)誤,需要輸出錯(cuò)誤的位置在源程序中的第幾行。將錯(cuò)誤 信息輸出到屏幕上。(5)對(duì)于普通標(biāo)識(shí)符和常量,分別建立標(biāo)識(shí)符表和常量表(使用線性表存儲(chǔ)) 當(dāng)遇到一個(gè)標(biāo)識(shí)符或常量時(shí),查找標(biāo)識(shí)符表或常量表,若存在,則返回位置,否 則返回0并且填寫符號(hào)表或常量表。標(biāo)識(shí)符表結(jié)構(gòu):變量名,類型(整型、實(shí)型、字符型),分配的數(shù)據(jù)區(qū)地址 注:詞法分析階段只填寫變量名,其它部分在語(yǔ)法
5、分析、語(yǔ)義分析、代碼生成等 階段逐步填入。常量表結(jié)構(gòu):常量名,常量值2.能對(duì)任何S語(yǔ)言源程序進(jìn)行分析在運(yùn)行詞法分析程序時(shí),應(yīng)該用問(wèn)答形式輸入要被分析的S源語(yǔ)言程序的文件名,然后對(duì)該程序完成詞法分析任務(wù)。1.1.2實(shí)驗(yàn)原理詞法分析程序的算法思想:算法的基本任務(wù)是從字符串表示的源程序中識(shí)別 出具有獨(dú)立意義的單詞符號(hào),其基本思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的 種類,拼出相應(yīng)的單詞符號(hào)。31.2.1實(shí)驗(yàn)要求(1)單詞的分類:構(gòu)造上述語(yǔ)言中的各類單詞符號(hào)及其分類碼表。表I語(yǔ)言中的各類單詞符號(hào)及其分類碼表單詞符號(hào)類別編碼類別碼的助記符單詞值begin1BEGINend2ENDif3IFthen4THE
6、Nelse5ELSE標(biāo)識(shí)符6ID字母打頭的字母數(shù)字串整常數(shù)7INT數(shù)字串<8LT二9LE=10EQ<>11NE>12GT>=13GE:=14IS+15PL-16MI*17MU/18DI(2)實(shí)驗(yàn)的狀態(tài)轉(zhuǎn)換圖如圖2-1 :圖2-1 :實(shí)驗(yàn)狀態(tài)轉(zhuǎn)換圖1.2.2實(shí)驗(yàn)流程圖(3)系統(tǒng)流程圖如下圖2-3所示:開始輸入需要掃 描的文件名輸入存放 結(jié)果文件I返回,退出文件是 否為空跳轉(zhuǎn)掃描 其他符號(hào)預(yù)讀一位ch行數(shù)加1 1 Ych是否為空格L *跳轉(zhuǎn)掃 描引號(hào)是否跳轉(zhuǎn)掃 描注釋ch是否為'/' Vch是否為字Y母或下劃線N、跳轉(zhuǎn)掃是否為YN跳轉(zhuǎn)掃面文 件單詞及保
7、 留字5圖2-2:系統(tǒng)流程圖1.3實(shí)驗(yàn)結(jié)果#測(cè)試結(jié)果如圖2-3所示圖2-3實(shí)驗(yàn)結(jié)果與書中的單詞表一致,結(jié)果正確。實(shí)驗(yàn)二語(yǔ)法分析程序?qū)崿F(xiàn)2.1 實(shí)驗(yàn)?zāi)康呐c要求通過(guò)設(shè)計(jì)、編制、調(diào)試一個(gè)典型的語(yǔ)法分析程序(任選有代表性的語(yǔ)法分析 方法,如算符優(yōu)先法、遞歸下降法、LL(1)、SLR(1)、LR等,作為編制語(yǔ)法分 析程序的依據(jù)),對(duì)掃描器所提供的單詞序列進(jìn)行語(yǔ)法檢查和結(jié)構(gòu)分析,實(shí)現(xiàn)并進(jìn)一步掌握常用的語(yǔ)法分析方法。2.2 實(shí)驗(yàn)內(nèi)容選擇對(duì)各種常見高級(jí)程序設(shè)計(jì)語(yǔ)言都較為通用的語(yǔ)法結(jié)構(gòu)作為分析對(duì)象, 給 出其文法描述(注意應(yīng)與所采用的語(yǔ)法分析方法比較貼近),設(shè)計(jì)并實(shí)現(xiàn)一個(gè)完 整的語(yǔ)法分析程序。輸入:源程序以文件
8、的形式輸入。輸出:對(duì)于所輸入的源程序,如果輸入符號(hào)用是給定文法定義的合法句子, 則輸出“RIGHT ,并且給出每一步歸約的過(guò)程;如果不是句子,即輸入用有錯(cuò) 誤,則輸出“ ERROR,并且顯示已經(jīng)歸約出的各個(gè)文法符號(hào)。2.3 實(shí)驗(yàn)要求以如下文法G1所定義的算術(shù)表達(dá)式的賦值語(yǔ)句作為分析對(duì)象,編寫并調(diào)試 一個(gè)語(yǔ)法分析程序。G1賦值語(yǔ)句:賦值語(yǔ)句 f 變量:= 算術(shù)表達(dá)式算術(shù)表達(dá)式 f 項(xiàng) | 算術(shù)表達(dá)式+領(lǐng) | 算術(shù)表達(dá)式 -項(xiàng)項(xiàng) 因式| 項(xiàng)*因式 | 項(xiàng)/因式因式 f 變量 | 常數(shù) | (算術(shù)表達(dá)式)變量 - 標(biāo)識(shí)符標(biāo)識(shí)符 f 標(biāo)識(shí)符 字母 | 標(biāo)識(shí)符 數(shù)字 | 字母常數(shù) - 整數(shù) | 浮點(diǎn)數(shù)整
9、數(shù) f 數(shù)字 | 數(shù)字 整數(shù)浮點(diǎn)數(shù) f? 整數(shù) | 整數(shù) ? 整數(shù)字母 A|B|C| |X|Y|Z|a|b|c|x|y|z數(shù)字 -0|1|2| g92.4.1 算法任務(wù)算法的基本任務(wù)是從字符串中表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符 號(hào),并通過(guò)其基本文法,正確規(guī)約到開始符號(hào)。2.4.2 全局變量的設(shè)置在此程序中,需要設(shè)置兩個(gè)個(gè)全局變量:關(guān)鍵字表retab6、當(dāng)前識(shí)別的 種別號(hào)syn其中retab中元素為 begin” if" then” While” do" end”,在程序會(huì)掃描 出標(biāo)識(shí)符時(shí),首先查關(guān)鍵字表。如果能找到匹配的單詞,則該單詞為關(guān)鍵字,否 則為一般標(biāo)識(shí)符。s
10、yn用于每一步掃描中scanner的返回值。在整個(gè)語(yǔ)法分析程序中均需要 使用該全局變量。2.4.3 主程序main算法流程圖Y2.4.4 掃描子程序scanner ()的算法流程圖ch =當(dāng)前第一個(gè)字符2.4.5parser ()的算法流程圖112.4.6語(yǔ)句串分析程序yucu ()的算法流程圖調(diào)用2.4.7 statement語(yǔ)句分析算法流程圖scanner。expression。出錯(cuò)處理2.5實(shí)驗(yàn)結(jié)果輸入正確,得到圖:p lease in pul: a st;rlnsr end wltli '#' besrin =9s x = =2*3 ; b: =a+x «nd # sucGesst輸入錯(cuò)誤,得到圖:pLea.se input a sti'ing end vitJi 耗=5*11* end #error實(shí)驗(yàn)結(jié)果正確。#13實(shí)驗(yàn)總結(jié)通過(guò)編譯原理的兩次上機(jī)實(shí)驗(yàn),我收獲頗多。上機(jī)實(shí)驗(yàn)前為了更好地完成實(shí)驗(yàn),我復(fù)習(xí)了下詞法語(yǔ)法這部分的知識(shí)。這加深了我對(duì)詞法語(yǔ)法這部分的理解。這兩
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康教育在公共衛(wèi)生領(lǐng)域的重要性
- 2025中國(guó)聯(lián)通江蘇省分公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)移動(dòng)福建公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)電信河北衡水分公司校園招聘6人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)煙草總公司海南省公司海口雪茄研究所招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)交建軌道交通事業(yè)部招聘14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年重慶渝中區(qū)事業(yè)單位歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年山東煙臺(tái)市棲霞市事業(yè)單位招聘本科及以上學(xué)歷畢業(yè)生入伍9人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川瀘州市龍馬潭區(qū)事業(yè)單位招聘工作人員19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海市生物醫(yī)藥科技發(fā)展中心公開招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年湖南省公務(wù)員考試《行測(cè)》真題及答案解析
- 產(chǎn)房年終總結(jié)及明年計(jì)劃
- 超市消防安全巡查制度
- 北京交通大學(xué)《數(shù)據(jù)結(jié)構(gòu)與算法》2021-2022學(xué)年期末試卷
- 足球體育說(shuō)課
- 【粵教】八上地理知識(shí)點(diǎn)總結(jié)
- 人教鄂教版五年級(jí)上冊(cè)科學(xué)復(fù)習(xí)資料
- TCGMA0330012018壓縮空氣站能效分級(jí)指南
- 國(guó)家開放大學(xué)《高級(jí)財(cái)務(wù)管理》形考任務(wù)1-3參考答案
- 天津能源投資集團(tuán)科技有限公司招聘筆試題庫(kù)2024
- 統(tǒng)編版(2024)道德與法治七年級(jí)上冊(cè):第二單元《成長(zhǎng)的時(shí)空》第4-7課教案(8課時(shí))
評(píng)論
0/150
提交評(píng)論