




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rè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)換圖直接編程編寫一個詞法分析程序,它從左到右逐個字符的對源程序進(jì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語言源程序進(jìn)行分析在運行詞法分析程
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年初中物理基本概念題及答案
- 2024年檔案管理的標(biāo)準(zhǔn)與規(guī)范試題及答案
- 多媒體應(yīng)用設(shè)計師考試新趨勢試題及答案
- 擴展物理思維的2024試題及答案
- 2024年記者證考試背誦策略與試題及答案
- 2024統(tǒng)計師考點分析試題及答案
- 新型農(nóng)民證考試題及答案
- 一步一步掌握珠寶鑒定師試題及答案
- 深入透析的公務(wù)員試題及答案
- 技術(shù)工具應(yīng)用2024年記者證考試試題及答案
- 2025屆貴州省安順市高三二模語文試題
- 企業(yè)模擬經(jīng)營電子沙盤
- 2025中國海洋大學(xué)輔導(dǎo)員考試題庫
- 專升本思政復(fù)習(xí)指導(dǎo)試題及答案
- 2025年涂料銷售合同模板
- 2024年昆明渝潤水務(wù)有限公司招聘考試真題
- 2025-2030中國小武器和輕武器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 高中主題班會 高考勵志沖刺主題班會課件
- 高三復(fù)習(xí):2025年高中化學(xué)模擬試題及答案
- 月考試卷(1~3單元)(試題)-2024-2025學(xué)年六年級下冊數(shù)學(xué)人教版(帶答案)
- 手術(shù)安全核查制度
評論
0/150
提交評論