版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué) 生 實(shí) 驗(yàn) 報(bào) 告 冊(cè)2017 2018 學(xué)年第1學(xué)期 學(xué)院:信息與電氣工程學(xué)院專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 姓名:李金 學(xué)號(hào):195140046班級(jí):計(jì)算機(jī)2班實(shí)驗(yàn)一詞法分析器的設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?、 通過(guò)設(shè)計(jì)編制一個(gè)調(diào)試一個(gè)具體的此法分析程序,理解詞法分析在編譯程序中的作用。2、 加深對(duì)有窮自動(dòng)機(jī)模型的理解。3、 掌握詞法分析程序的實(shí)現(xiàn)方法和要求。4、 用C語(yǔ)言,對(duì)一個(gè)簡(jiǎn)單語(yǔ)言 的子集編制一個(gè)一遍掃描的程序,以加深對(duì)編譯原理的理解,掌握編譯程序的實(shí)現(xiàn)方法和技術(shù)。編制一個(gè)讀單詞過(guò)程,從輸入的源程序中,識(shí)別出各個(gè)具有獨(dú)立意義的單詞,即基本保留字、標(biāo)識(shí)符、常數(shù)、運(yùn)算符、分隔符五大類(lèi),并依次輸出各個(gè)單
2、詞的內(nèi)部編碼及單詞符號(hào)自身值(遇到錯(cuò)誤時(shí)課顯示“Error”,然后跳過(guò)錯(cuò)誤部分繼續(xù)顯示)一、 程序要求程序輸入/輸出示例如源程序?yàn)镃語(yǔ)言,輸入如下一段:Main()int a,b;a = 10;b = a + 20;要求輸出如下圖(2,main) (4,=) (5,()(3,10)(5,)(5,;)(5,)(2,b)(1,int)(4,=)(2,a)(2,a)(5,)(4,+)(2,b)(3,20)(5,;)(5,;)(2,a)(5,) 要求:1、 識(shí)別保留字:if,int,for,while,do,return,break,continue; 單詞識(shí)別碼為1;2、 其他的都識(shí)別為標(biāo)識(shí)符;單詞
3、識(shí)別碼為2;3、 常數(shù)為無(wú)符號(hào)整數(shù);單詞識(shí)別碼為3;4、 運(yùn)算符包括:+,-,*,/,=,=,!=;單詞識(shí)別碼為4;5、 分隔符包括:,、;、(、);單詞識(shí)別碼為5;二、 實(shí)驗(yàn)步驟1、 定義部分:定義常亮、變量、數(shù)據(jù)結(jié)構(gòu)。2、 初始化:從文件源程序全部輸入到字符緩沖區(qū)中。3、 取單詞前后去掉多余空格和回車(chē)空行。4、 取單詞:讀出單詞的每一個(gè)字符,組成單詞,分析類(lèi)型。(1) 識(shí)別標(biāo)識(shí)符(包括保留字) 關(guān)鍵字作為特殊標(biāo)識(shí)符處理,把他們預(yù)先安排在一張表格中(保留字表),當(dāng)掃描程序識(shí)別標(biāo)識(shí)符時(shí),查找關(guān)鍵字,否則一般標(biāo)識(shí)符,識(shí)別保留字:if,int,for,while,do,return,break,c
4、ontinue; 單詞識(shí)別碼為1;其他的都識(shí)別為標(biāo)識(shí)符;單詞識(shí)別碼為2。 (2)識(shí)別常數(shù): 注意:常數(shù)的有效范圍,如果產(chǎn)生溢出則設(shè)置syn的值,與主函數(shù)的代碼呼應(yīng)。常數(shù)為無(wú)符號(hào)整數(shù);單詞識(shí)別碼為3。(3)識(shí)別運(yùn)算符 區(qū)分運(yùn)算符和和=,+和+,-和-。 運(yùn)算符包括:+,-,*,/,=,,=,=,!=;單詞識(shí)別碼為4; (4)識(shí)別分隔符 分隔符包括:,、;、(、)單詞識(shí)別碼為5;5、 流程圖 初始化 文件結(jié)束 忽略空格返回是 否 拼字符串 字母數(shù)字運(yùn)算符界符等符號(hào) 其他報(bào)錯(cuò)拼數(shù)對(duì)應(yīng)不同符號(hào)給出相應(yīng)的syn Syn=3是否是關(guān)鍵字否返回對(duì)應(yīng)SynSyn=2是三、 程序代碼#include#inclu
5、dechar program80,token8;char ch;int syn,p,m,n,row;long int sum;char *key8=if,int,for,while,do,return,break,continue;void scaner()for(n=0;n8;n+)tokenn=NULL;m=0;ch=programp+;while(ch= )|(ch=n) ch=programp+; if(ch=a)|(ch=A) /標(biāo)識(shí)符判斷 while(ch=a)|(ch=A)|(ch=0)&(ch=9) tokenm+=ch; ch=programp+; p-; syn=2; fo
6、r(n=0;n=0)&(ch=0)&(ch=9) sum=sum*10+ch-0; ch=programp+; p-; syn=3; else switch(ch) case : tokenm+=ch; ch=programp+; if(ch=) syn=4; tokenm+=ch; else syn=4; p-; break; case +: tokenm+=ch; ch=programp+; if(ch=+) syn=4; tokenm+=ch; else syn=4; p-; break; case -: tokenm+=ch; ch=programp+; if(ch=-) syn=4;
7、 tokenm+=ch; else syn=4; p-; break; case !: ch=programp+; if(ch=) syn=4; tokenm+=ch; else syn=4; p-; break; case =: tokenm+=ch; ch=programp+; if(ch=) syn=4; tokenm+=ch; else syn=4; p-; break; case *: case /: syn=4; tokenm+=ch; case (: case ): case : case : case ;: case : case ,: syn=5; tokenm+=ch; break; case #: syn=-2; tokenm+=ch; break; default: syn=-1; break; tokenm+=0;main()p=0;row=1;printf(n please input string:n);doch=getchar();programp+=ch;while(ch!=#);p=0;doscaner();switch(syn)case 3:printf(n(%d,%d),syn,sum);break;case -1:printf(nFOUND ERROR IN ROW %d,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)三年級(jí)(中藥學(xué))中藥炮制學(xué)試題及答案
- 2025年中職食品加工工藝(食品罐頭)試題及答案
- 2025年高職信息管理與信息系統(tǒng)(數(shù)據(jù)庫(kù)應(yīng)用)試題及答案
- 2025年高職(中藥學(xué))中藥炮制技術(shù)階段測(cè)試題及答案
- 2025年中職康復(fù)技術(shù)(作業(yè)治療技術(shù))試題及答案
- 2025年大學(xué)本科四年級(jí)(旅游管理)旅游規(guī)劃與開(kāi)發(fā)測(cè)試題及答案
- DB62-T 4963-2024 地質(zhì)災(zāi)害警示牌技術(shù)規(guī)范
- 中職第二學(xué)年(會(huì)計(jì)基礎(chǔ))原始憑證處理2026年綜合測(cè)試題及答案
- 2025年大學(xué)青少年社會(huì)工作(青少年服務(wù)實(shí)務(wù))試題及答案
- 2025年高職(林業(yè)技術(shù))森林培育技術(shù)綜合測(cè)試試題及答案
- NB-T20048-2011核電廠建設(shè)項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)方法
- 4第四章 入侵檢測(cè)流程
- 鈀金的選礦工藝
- 人工智能在金融策略中的應(yīng)用
- JCT640-2010 頂進(jìn)施工法用鋼筋混凝土排水管
- 赤壁賦的議論文800字(實(shí)用8篇)
- 輸變電工程技術(shù)標(biāo)書(shū)【實(shí)用文檔】doc
- 南部山區(qū)仲宮街道鄉(xiāng)村建設(shè)規(guī)劃一張表
- GB/T 2652-1989焊縫及熔敷金屬拉伸試驗(yàn)方法
- GB/T 25630-2010透平壓縮機(jī)性能試驗(yàn)規(guī)程
評(píng)論
0/150
提交評(píng)論