![編譯原理詞法分析器實驗報告_第1頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/8/4fb2653f-0545-43f8-af56-c2cc8addfdd7/4fb2653f-0545-43f8-af56-c2cc8addfdd71.gif)
![編譯原理詞法分析器實驗報告_第2頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/8/4fb2653f-0545-43f8-af56-c2cc8addfdd7/4fb2653f-0545-43f8-af56-c2cc8addfdd72.gif)
![編譯原理詞法分析器實驗報告_第3頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/8/4fb2653f-0545-43f8-af56-c2cc8addfdd7/4fb2653f-0545-43f8-af56-c2cc8addfdd73.gif)
![編譯原理詞法分析器實驗報告_第4頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/8/4fb2653f-0545-43f8-af56-c2cc8addfdd7/4fb2653f-0545-43f8-af56-c2cc8addfdd74.gif)
![編譯原理詞法分析器實驗報告_第5頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/8/4fb2653f-0545-43f8-af56-c2cc8addfdd7/4fb2653f-0545-43f8-af56-c2cc8addfdd75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程實驗題目: 作者所在系部: 作者所在專業(yè): 作者所在班級: 作者學(xué)號: 作者姓名: 指導(dǎo)教師姓名: 完成時間:北華航天工業(yè)學(xué)院編譯原理課程實驗報告詞法分析器實驗 計算機科學(xué)與工程系 計算機科學(xué)與技術(shù)B0851218李桂丁李建義2010 年3月26日一、實驗?zāi)康牧私庠~法分析程序的兩種設(shè)計方法:1.根據(jù)狀態(tài)轉(zhuǎn)換圖直接編程的方式;2.利用DFA編寫通用的詞法分析程序。二、實驗內(nèi)容及要求1 根據(jù)狀態(tài)轉(zhuǎn)換圖直接編程編寫一個詞法分析程序,它從左到右逐個字符的對源程序進行掃描,產(chǎn)生一個個的單詞的二元式,形成二元式(記號)流文件輸出。在此,詞法分析程序作為單獨的一遍,如下圖 所示。具體任務(wù)有:(1) 組織
2、源程序的輸入(2) 拼出單詞并查找其類別編號,形成二元式輸出,得到單詞流文件(3 )刪除注釋、空格和無用符號(4)發(fā)現(xiàn)并定位詞法錯誤,需要輸出錯誤的位置在源程序中的第幾行。將錯誤信息輸 出到屏幕上。(5 )對于普通標(biāo)識符和常量,分別建立標(biāo)識符表和常量表(使用線性表存儲),當(dāng)遇到一個標(biāo)識符或常量時,查找標(biāo)識符表或常量表,若存在,則返回位置,否則返回0并且填寫符號表或常量表。標(biāo)識符表結(jié)構(gòu):變量名,類型(整型、實型、字符型),分配的數(shù)據(jù)區(qū)地址注:詞法分析階段只填寫變量名,其它部分在語法分析、語義分析、代碼生成等階段逐 步填入。常量表結(jié)構(gòu):常量名,常量值2 能對任何S語言源程序進行分析在運行詞法分析程
3、序時, 應(yīng)該用問答形式輸入要被分析的S源語言程序的文件名, 然后對該程序完成詞法分析任務(wù)。3 能檢查并處理某些詞法分析錯誤詞法分析程序能給出的錯誤信息包括:總的出錯個數(shù),每個錯誤所在的行號, 錯誤的編號及錯誤信息。4.本實驗要求處理以下兩種錯誤(編號分別為1, 2):1:非法字符:單詞表中不存在的字符處理為非法字符,處理方式是刪除該字符,給出 錯誤信息,“某某字符非法”。2:源程序文件結(jié)束而注釋未結(jié)束。注釋格式為:/*/三、實驗程序設(shè)計說明1實驗方案設(shè)計2.程序源代碼#in clude#in clude#in clude#in cludeusing n amespace std;stri ng
4、keywords20=i nclude,void,mai n ,i nt,char,float,double,if,else ,the n ,break,co ntin ue,for,do,while,pri ntf,sca nf,begi n,e nd,r eturn;char aa99999= ”;string id10000;int pp=O;string nu10000;int qq=O;void in itsca nner() _str(),wordbuf)=0) flag=1;if(flag=0)int flagg=-1; for(int t=0;tpp;t+)if(strcmp(
5、idt.c_str(),wordbuf)=0) flagg=t;if(flagg!=-1) printf( (id,%d) ,flagg);elseidpp=wordbuf;printf( (id,%d) ,pp);pp+;elseprintf( ();for(int i=0;in;i+)printf(%c,wordbufi);printf(,-) );return st;int isnumber(int st) ) numbufn=aast; k+;else if(decide1(aast)=1) numbufn=aast; flag=1; continue;else break;if(fl
6、ag=0)int flagg=-1;for(int t=0;tqq;t+)if(strcmp(nut.c_str(),numbuf)=0) flagg=t;if(flagg!=-1) printf( (nu,%d) ,flagg);else nuqq=numbuf; printf( (nu,%d) ,qq);qq+;elseprintf( ();for(int i=0;in;i+) printf(%c,numbufi); printf(,error digital!) );return st;int isanotation(int st) : st+;printf( (.,-) );break
7、;case ,: st+; printf( (,-) );break;case : st+;break;case : st+;break;case 10: st+; printf(n);break;case 34: st+; printf( (,-) );break;case 39: st+;printf( (,-) ); break;default: printf( (%c,worng thing) ,aast);st+;return st;int lexscan(int st) /根據(jù)讀入的單詞的第一個字符確定調(diào)用不同的單詞識別函數(shù)if(decide1(aast)=1)st=isalpha
8、(st);else if(decide2(aast)=1)st=isnumber(st);else if(aast=/)st=isanotation(st);else st=isother(st);return st;若文件未結(jié)束,反復(fù)調(diào)用 lexscan 函數(shù)識別單詞void scanner() /int i=0;while(aai!=NULL)i=lexscan(i);void print()coutendl This is id card! endl; for(int i=0;ipp;i+)couti idiendl; cout This is nu card! endl; for(int j=0;jqq;j+)coutj nujendl;void main()initscanner();scanner();print();3程序的執(zhí)行結(jié)果圖 1 程序輸入文件內(nèi)容圖 2 輸出結(jié)果4實驗程序的優(yōu)點和特色31fd 此字符串/* 以下全部按錯本程序特色: 出錯處理能力強,任何非法字符輸入,將會報錯。比如: 可定為錯誤,并將之輸出警告;當(dāng) /* 出現(xiàn)時,后必跟 */ ,當(dāng)無此收尾時,自 誤處理,并警告。四、實驗中出現(xiàn)的問題及解決方法/* 注釋符后,不跟 */
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貧困生補助申請書
- 崗位晉升申請書理由
- 構(gòu)建穩(wěn)健的網(wǎng)絡(luò)安全產(chǎn)品售后服務(wù)體系框架
- 2025年度國際貿(mào)易結(jié)算代理服務(wù)合同
- 二零二五年度苗圃技術(shù)員園藝植物生理學(xué)聘用合同
- 2025年度國際貿(mào)易公司銷售團隊業(yè)績評估與反饋合同
- 重度殘疾申請書
- 2025年度醫(yī)療機構(gòu)感染病科醫(yī)生合作協(xié)議
- 2025年中國宣紙行業(yè)投資研究分析及發(fā)展前景預(yù)測報告
- 電商平臺的產(chǎn)品差異化策略研究
- GB/T 26189.2-2024工作場所照明第2部分:室外作業(yè)場所的安全保障照明要求
- 英語人教版高中必修三(2019新編)第一單元教案
- GB/T 9535-1998地面用晶體硅光伏組件設(shè)計鑒定和定型
- GB 9706.1-2020醫(yī)用電氣設(shè)備第1部分:基本安全和基本性能的通用要求
- 口腔頜面外科:第十六章-功能性外科與計算機輔助外科課件
- 植物工廠,設(shè)計方案(精華)
- 貸款新人電銷話術(shù)表
- 音箱可靠性測試規(guī)范
- 數(shù)據(jù)結(jié)構(gòu)ppt課件完整版
- 新北師大版四年級下冊小學(xué)數(shù)學(xué)全冊導(dǎo)學(xué)案(學(xué)前預(yù)習(xí)單)
- 杭州市主城區(qū)聲環(huán)境功能區(qū)劃分圖
評論
0/150
提交評論