版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、廣州大學(xué)學(xué)生實驗報告開課學(xué)院及實驗室:年月日學(xué)院計算機科學(xué)和教育軟件學(xué)院年級/專業(yè)/班姓名學(xué)號實驗課程名稱編譯原理實驗成績實驗項目名稱詞法分析指導(dǎo)老師實驗?zāi)康脑O(shè)計、編制并調(diào)試一個詞法分析程序,加深對詞法分析原理的理解。針對表達(dá)各類詞語的一組正規(guī)表達(dá)式,設(shè)計一個確定化的最簡的有限自動機,對輸入的符號串進(jìn)行單詞劃分及詞類識別。實驗內(nèi)容將詞法分析器分解為以下幾個部分:正規(guī)表達(dá)式的分析:將正規(guī)表達(dá)式中的符號分解為常量字符、正規(guī)表達(dá)式標(biāo)識符和正規(guī)表達(dá)式運算符,然后基于正規(guī)表達(dá)式運算將正規(guī)表達(dá)式分解為更小的正規(guī)表達(dá)式(通過正規(guī)表達(dá)式運算符進(jìn)行串接)。正規(guī)表達(dá)式到NFA的轉(zhuǎn)換:根據(jù)轉(zhuǎn)換規(guī)則,基于正規(guī)表達(dá)式運
2、算,將正規(guī)表達(dá)式轉(zhuǎn)換為非確定有限自動機,并確定各類詞的終止?fàn)顟B(tài)。NFA的確定化:通過計算各狀態(tài)的傳遞閉包,將NFA確定化,并確定各類詞的終止?fàn)顟B(tài)。最小化:通過子集法,求得最簡的確定有限自動機,并確定各類詞的終止?fàn)顟B(tài)。例如:分析C語言子集的詞法1)關(guān)鍵字mainifelseintreturnvoidwhile(都是小寫)2)專用符號=+*/=!=;:,()3)其他模式(正規(guī)表達(dá)式)STRING:=F*ID:=letter(letter|digit)*INT:=digitdigit*letter:=a|z|A|Zdigit:=0|94)空格由空白、制表符和換行符組成空格一般用來分隔ID、NUM、專
3、用符號和關(guān)鍵字,詞法分析階段通常被忽略。部分單詞符號對應(yīng)的種別碼單詞符號種別碼單詞符號種別碼main1/25int2(26char3)27if428else5129for630while731詞法分析程序的功能return832void9A33STRING5034ID1035INT2036=2137+2238-2329*24J40輸入:所給文法的源程序字符串輸出:二元組(syn,token或sum)構(gòu)成的序列。其中syn為單詞種別碼;token為存放的單詞自身字符串;sum為整型常量(作為常量的值)。實現(xiàn)時,可將單詞的二元組用結(jié)構(gòu)進(jìn)行處理代碼:#include#includeusingname
4、spacestd;intmain()inti=O,j,k=O;/k判斷是保留字還是idchara710=main,if,else,int,return,void,while;保留字?jǐn)?shù)組chars;chartoken40=0;cout請輸入字符=a&s=A&s=a&s=A&s=0&s=9)tokeni+=s;s=getchar();for(j=0;j7;j+)判斷是否為保留字if(strcmp(token,aj)=0)coutj+1,tokenendl;k=1;break;if(k=O)為idcout10,token=0&s=0&s=9)不是數(shù)字flag=0;cout20,tokenendl;m
5、emset(token,0,sizeof(token);i=0;elseif(s=)判斷=s=getchar();if(s=)cout39,=endl;s=getchar();elsecout21,=endl;elseif(s=+)判斷+cout22,sendl;s=getchar();elseif(s=-)判斷-cout23,sendl;s=getchar();elseif(s=*)判斷*cout24,sendl;s=getchar();elseif(s=/)判斷/cout25,sendl;s=getchar();elseif(s=()判斷(cout26,sendl;s=getchar();
6、elseif(s=)判斷)cout27,sendl;s=getchar();elseif(s=)判斷cout28,sendl;s=getchar();elseif(s=)判斷cout29,sendl;s=getchar();elseif(s=)判斷cout30,sendl;s=getchar();elseif(s=)判斷cout31,sendl;s=getchar();elseif(s=,)判斷,cout32,sendl;s=getchar();elseif(s=:)判斷:cout33,sendl;s=getchar();試驗結(jié)果elseif(s=;)判斷;cout34,s)判斷或=s=getchar();if(s=)cout=endl;s=getchar();elsecoutendl;elseif(s=)判斷或=s=g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 啤酒釀造行業(yè)市場調(diào)研分析報告
- 不動產(chǎn)的金融評估行業(yè)市場調(diào)研分析報告
- 醫(yī)用細(xì)胞產(chǎn)品供應(yīng)鏈分析
- 藥用黃精項目營銷計劃書
- 與計算機連用的打印機的出租行業(yè)經(jīng)營分析報告
- T恤衫刺繡服務(wù)行業(yè)營銷策略方案
- 芭蕾舞軟鞋項目運營指導(dǎo)方案
- 加油站發(fā)油泵產(chǎn)品供應(yīng)鏈分析
- 電子音頻設(shè)備減振器細(xì)分市場深度研究報告
- 包扎用填料產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 癲癇持續(xù)狀態(tài)課件
- 2020 ACLS-PC-SA課前自我測試試題及答案
- 電梯安裝改造維修程序文件+記錄2020版-電梯資質(zhì)認(rèn)證用資料正規(guī)機構(gòu)編制符合TSG-2019要求293頁
- 新課標(biāo)下的讀后續(xù)寫試題的命制與思考
- SOP標(biāo)準(zhǔn)作業(yè)指導(dǎo)書(模版)
- BIM技術(shù)應(yīng)用管理辦法
- 馬原辨析題題庫
- ev3產(chǎn)品介紹(頸動脈)
- 表格式教學(xué)設(shè)計方案模板舉例
- 盧森寶亞壓縮空氣泡沫系統(tǒng)
- 桶裝水領(lǐng)用登記表
評論
0/150
提交評論