編譯原理實驗1_第1頁
編譯原理實驗1_第2頁
編譯原理實驗1_第3頁
編譯原理實驗1_第4頁
編譯原理實驗1_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論