

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)學(xué)院實驗報告【20162017學(xué)年第2學(xué)期】【一、基本信息】【實驗課程】編譯原理【設(shè)課形式】獨(dú)立口非獨(dú)立匚1【課程學(xué)分】4【實驗項目】實驗一語法分析器的設(shè)計【項目類型】基礎(chǔ)口綜合設(shè)計口研究創(chuàng)新口其它【項目學(xué)時】4【學(xué)生姓名】【學(xué)號】【系別專業(yè)】軟件開發(fā)【實驗班組】級班組臺【同組學(xué)生】【實驗室名】綜合實驗樓【實驗日期】【報告日期】【一、實驗教師對報告的最終評價及處理意見】實驗成績:(涂改無效)指導(dǎo)教師簽名:年月日1注:要將實驗項目、實驗課程的成績評定及課程考核辦法明確告知學(xué)生,并報實驗管理中心備案【三、實驗預(yù)習(xí)】實驗?zāi)康暮鸵?1. 掌握自上而下語法分析的基本思想;2. 掌握利用預(yù)測分析法
2、進(jìn)行語法分析的原理和過程;3. 熟悉文法的機(jī)內(nèi)表示;4. 掌握語法分析器的設(shè)計與調(diào)試,提高編程能力、動手能力以及獨(dú)立分析問題、解決問題的能力和綜合運(yùn)用所學(xué)知識的能力。實驗內(nèi)容和原理或涉及的知識點(diǎn)(綜合性實驗):1. 輸入任意文法,改寫文法使其成為LL(1文法。2. 構(gòu)造文法的預(yù)測分析表;3. 設(shè)計堆棧和預(yù)測分析表的機(jī)內(nèi)表示;4. 設(shè)計并書寫語法分析程序;5. 調(diào)試并運(yùn)行語法分析程序;6. 實驗結(jié)果分析分析程序中文法存儲所采用的數(shù)據(jù)結(jié)構(gòu)分析結(jié)果并寫出自己的心得體會提示:對于所選定的分析方法,如有需要,應(yīng)選擇一種合適的數(shù)據(jù)結(jié)構(gòu),以構(gòu)造所給文法的機(jī)內(nèi)表示。實驗條件(實驗設(shè)備、軟件、材料等):1. 裝
3、有Codeblocks的電腦一臺。2. 實驗環(huán)境:WINDOWS下,工具為Turbo或VisualC。實驗考核方式:1. 提交實驗報告2. 演示程序和答辯(抽查)實驗預(yù)習(xí)實驗設(shè)計方案(實驗方法、步驟、操作過程、設(shè)計型實驗、實驗數(shù)據(jù)記錄表格):實驗預(yù)習(xí)成績(涂改無效)合格口不合格口【四、實驗過程、數(shù)據(jù)和實驗結(jié)果記錄】實驗方法、步驟、操作過程的記錄描述或程序代碼。實驗過程中輸入/輸岀數(shù)據(jù)、程序運(yùn)行結(jié)果的記錄。(可加附頁)1.輸入任意文法,改寫文法使其成為LL(1文法。答:輸入文法GE:ET|EATTF|TMFF(E)|iA+|-M*|/(1)改寫文法。對形如:UUx|y的產(chǎn)生式(其中x,yV+,y
4、不以U開頭),引入一個新的非終結(jié)符U'后,可以等價地改寫成為:UyU'U'xU'|&顯然改寫后,U和U'都不是左遞歸的非終結(jié)符。因此文法GE按上述方法消去左遞歸后可等價地寫成:ETP'P'ATP|&TFW1&W'MFW'|&F(E)|iM*|/2.構(gòu)造文法的預(yù)測分析表;i+-+/()#EE->TEE->TEE'E'->ATEE'->ATEE'->?E'->?TT->FTt->ftT'T'-
5、>?T'->?T'->MFT'T'->MFT'T->?T->?FF->iF->(E)AA->+A->MM->*M->/3. 設(shè)計堆棧和預(yù)測分析表的機(jī)內(nèi)表示;堆棧表示:預(yù)測分析表的機(jī)內(nèi)表示4.設(shè)計并書寫語法分析程序;語法分析程序代碼:#include<>#include<>#include<>#include<>charA20;charB20;charv120='i','+','*',
6、9;(',')',#;charv220='E','G',T,'S','F'intj=0,b=0,top=0,l;typedefstructtypecharorigin;chararray5;intlength;type;typee,t,g,g1,s,s1,f,f1;typeC1010;voidprint()inta;for(a=0;a<=top+1;a+)printf("%c",Aa);printf("tt");voidprint1()intj;for(j=0;
7、j<b;j+)printf("");for(j=b;j<=l;j+)printf("%c",Bj);printf("ttt");voidmain()intm,n,k=0,flag=0,finish=0;charch,x;typecha;='E'strcpy,"TG");=T;strcpy,"FS");=2;=2;='G'strcpy,"+TG");=3;='G'0='";=1;='S'
8、;strcpy,"*FS");=3;='S'0='A'=1;='F'strcpy,"(E)");=3;='F'0='i'=1;for(m=0;m<=4;m+)for(n=0;n<=5;n+)Cmn.origin='N'C00=e;C03=e;C11=g;C14=g1;C15=g1;C20=t;C23=t;C31=s1;C32=s;C34=C35=s1;C40=f1;C43=f;printf("提示:本程序只能對由,'+',
9、'*','(',')'構(gòu)成的以'#'結(jié)束的字符串進(jìn)行分析,n");printf("請輸入要分析的字符串:");doscanf("%c",&ch);if(ch!='i')&&(ch!='+')&&(ch!='*')&&(ch!='(')&&(ch!=')')&&(ch!=#)printf("輸入串中有非法字符
10、n");exit(1);Bj=ch;j+;while(ch!='#');l=j;ch=BO;Atop=#;A+top='E'printf("步驟tt分析棧tt剩余字符tt所用產(chǎn)生式n");dox=Atop-;printf("%d",k+);printf("tt");for(j=0;j<=5;j+)if(x=v1j)flag=1;break;if(flag=1)if(x='#')finish=1;printf("acc!n");getchar();get
11、char();exit(1);if(XHHCh)宀prinpprinfko八pinff(=%c目礙云=ch)八chHB+bkf-agHO八e-se宀prinpprinfko八pHf(=%c圧a云=ch=exioxe-se宀forpA-H4j+)=h(XHHV2曰)宀m=Bbreak八folxjHO八AH5j+)ifohHHs曰)宀衛(wèi)break八chauc3=nkifHN)宀prinpprinfko八pimf(=%ov=-E:codeblockfilestestabcbinIDebugtestabe.exe«,”構(gòu)成的以/護(hù)結(jié)東的字符串進(jìn)彳扮析.4£?8小析棧HEttGTtt
12、GSFSCSI»GS#GT+ttGTttGSFttGG>E<MGg'EKGS>GT#GS>GSFIIGS>GSiHGS>GSttGE>G£F*#GS>G£FltGS>GSlKGS>GSttGS>GttGS>ttGSttG乘!余字符i*d>#i*d>Bi*i>#*i>#ACC輸入(i+i)*i#運(yùn)行結(jié)果如圖所用產(chǎn)主式E->TGT->FSF->ii匹酉己£->AG->+TG匹配T->FSF-XE)t匹配EXTGT->
13、;FS配»FL->mJii>#>tttt!.nJiiA->匹->己A酉AA->匹->->G>尸E:codeblocksfileste戢已bcbinDebugtestabcsexeUaceT6?890tri/=f*析莪9子燙ttEttGT#GSFttGS>E<ttG£>EttGS>GT#GS>GSF#GS>GSdHGS>GS#GS>GttGS>GT+#G£>GTttGS>GSFttGOGSdttG£>GSttGS>CttGS>ttGS#GSF*ttGSFttGSittGSttG剩余字符i>*i«>*itt*lttittttn所用產(chǎn)生式E->IG
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店服務(wù)流程課件
- 學(xué)前兒童健康教育
- 五線譜初學(xué)課程
- 創(chuàng)意紐扣貼畫勞動教育
- 寓言故事《刻舟求劍》解讀
- 小兒潰瘍性口炎的護(hù)理
- 腸造口出院后的護(hù)理指南
- 血小板減少性紫癜飲食護(hù)理
- 2025年山東省曲阜市中考一模語文試題含答案
- 口才國慶節(jié)課件:《中華頌》演講與愛國教育
- 《基于寧德時代的財務(wù)報表的公司財務(wù)分析》4100字(論文)
- 湖南省長沙市雅禮實驗中學(xué)-主題班會-《陽光心態(tài)美麗青春》【課件】
- 提高單病種上報率
- The+Person+I+respect+高考應(yīng)用文寫作+導(dǎo)學(xué)案 高三上學(xué)期英語一輪復(fù)習(xí)專項
- 2025年中考考前物理押題密卷(河北卷)(考試版A4)
- 臨床護(hù)理實踐指南2024版
- 人教版七年級下冊數(shù)學(xué)第七章平面直角坐標(biāo)系-測試題及答案
- “煎炒烹炸”與中藥療效(安徽中醫(yī)藥大學(xué))知道智慧樹章節(jié)答案
- 行政事業(yè)單位內(nèi)部控制規(guī)范專題講座
- 加油站卸油時跑冒油應(yīng)急演練及方案
- 藥品供貨服務(wù)方案
評論
0/150
提交評論