版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗報告學(xué)號專業(yè)計算機班級姓名課程名稱編譯原理課程類型必修課實驗名稱實驗一、文法存儲及輸出實驗?zāi)康模?1.掌握文法在計算機內(nèi)的存儲表示; 2.輸入任意的上下文無關(guān)文法;3.以四元組的形式輸出Chomsky 文實驗內(nèi)容:敘述本次實驗的實現(xiàn)方法、分析、實現(xiàn)了哪些功能、給出一個或多個測試用例及其預(yù)期運行結(jié)果,要求能夠反映本次實驗的成果。1.本次實驗的實現(xiàn)方法為:采用數(shù)組的形式實現(xiàn)文法在機內(nèi)的存儲表示。2.本次試驗的問題分析為:一是文法的輸入形式;二是文法在計算機內(nèi)的存儲表示形式。3.本次試驗應(yīng)實現(xiàn)以下功能:輸入一個文法的識別符號與重寫規(guī)則,輸出文法的四要素VN,VT,P,Z
2、。4.測試實例:實例:輸入文法GE:E:=E+T|T T:=T*F|FF:=(E)|i實驗代碼如下:#include <stdio.h> char GName10; typedef char SymbolT; SymbolT StartSymbol; typedef struct SymbolT LeftSym; SymbolT Rightpart20; int RightLength; RuleTC; RuleTC GrammarC20; SymbolT VT20; SymbolT VN20; int NVN=0,NVT=0; typedef struct int LeftSym
3、Num; int RightpartNum20; int RightLength; RuleT; RuleT Grammar20; int RuleN; char StartSym; char Input 20= "E:=E+T|T", "T:=T*F|F", "F:=(E)|i", "0" ; int LineNumofG=3; void GetGrammar() char LeftS,Sym; int k,j,m; StartSym=GrammarC1.LeftSym; for(k=1; k<=RuleN
4、; k+) LeftS=GrammarCk.LeftSym; for(j=1; j<=NVN; j+) if(LeftS=VNj) Grammark.LeftSymNum=j+100; break; for(j=1; j<=GrammarCk.RightLength; j+) Sym=GrammarCk.Rightpartj; for(m=1; m<=NVN; m+)if(Sym=VNm) Grammark.RightpartNumj=m+100;break; if(m<=NVN) continue; for(m=1; m<=NVT; m+) if(Sym=VTm
5、) Grammark.RightpartNumj=m; break; Grammark.RightLength=GrammarCk.RightLength; void storeG( ) int row,colum, k,j,m; char sym,U; RuleN=0; row=0; NVN=NVT=0; while(row<LineNumofG) colum=0; sym=Inputrowcolum; for(k=1; k<=NVN; k+) if(sym=VNk) break; if(k>NVN) VN+NVN=sym; GrammarC+RuleN.LeftSym=s
6、ym; colum=colum+4; j=0; while(Inputrowcolum!='0') sym=Inputrowcolum+; if(sym='|') GrammarCRuleN.RightLength=j;U=GrammarCRuleN.LeftSym; RuleN=RuleN+1; GrammarCRuleN.LeftSym=U; j=0; continue; j=j+1; GrammarCRuleN.Rightpartj=sym; for(k=1;k<=NVT; k+)if( sym=VTk) break;if(k>NVT)VT+N
7、VT=sym; GrammarCRuleN.RightLength=j; row=row+1; for( m=1; m<=NVT; m+) for(k=1; k<=NVN; k+) if(VTm=VNk) VTm=' ' break; for(m=1;m<=NVT; m+) if(VTm=' ') for(j=m+1; j<=NVT; j+) VTj-1=VTj; NVT=NVT-1; if(VTm=' ') m=m-1; continue; GetGrammar( ); DispG( ) int k,j,m; print
8、f("n 文法的識別符號 Z 為:%cn", StartSym); printf("重寫規(guī)則集 P 為:n"); for(k=1; k<=RuleN; k+) printf("%8c%c:=",' ', VNGrammark.LeftSymNum-100); for(j=1; j<=Grammark.RightLength; j+) m=Grammark.RightpartNumj; if(m<100) printf("%c",VTm); else printf("%c&
9、quot;,VNm-100); printf("n"); printf("文法的非終結(jié)符號集為:VN= "); for(k=1; k<=NVN-1; k+) printf("%c", VNk); printf(","); printf("%c n",VNNVN); printf("文法的終結(jié)符號集為:VT= "); for(k=1; k<=NVT-1; k+) printf("%c", VTk); printf(",");
10、printf("%c n",VTNVT); void main( ) char c='Y' int j; printf("n 文法重寫規(guī)則:n"); for(j=0; j<LineNumofG; j+) printf("%sn",Inputj); printf("重新輸入文法的重寫規(guī)則?(Y/N): "); scanf("%c",&c); if(c='Y' | c='y') printf("輸入行數(shù)(一個規(guī)則一行):"); scanf("%d",&LineNumofG); for(j=0; j<LineNumofG; j+) scanf("%s",Inputj); storeG( ); DispG( ); 實驗結(jié)果:實例一:輸入文法GE:E:=E+T|T T:=T*F|FF:=(E)|i實例二:輸入文法G2Z:Z:=aZb|ab Z:=CSd S:=CSd|Cd實例三:輸入文法G3E:E:=T|E+T|E-TT:=F|T*F|T/F F:=(E)|i實例四:輸入文法:G4Z:Z:=Ab|c A:=Aa
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026 年中職精細化工技術(shù)(精細化學(xué)品分析)試題及答案
- 辦公環(huán)境裝修合同協(xié)議2025年
- 外星生命探測
- 2025年河北省公需課學(xué)習(xí)-城市體檢評估制度
- 冰箱的課件教學(xué)課件
- 2025年預(yù)防艾滋病知識競賽試題及答案(合集)
- 江蘇教編學(xué)科真題及答案
- 第七單元 微專題 圖形的折疊
- 海陸水循環(huán)考試題及答案
- 福清城投筆試真題及答案
- 杜國楹小罐茶的創(chuàng)業(yè)講稿
- 2025-2026學(xué)年統(tǒng)編版九年級歷史上冊(全冊)知識點梳理歸納
- 滬教版(新版)一年級下學(xué)期數(shù)學(xué)第4單元100以內(nèi)的加減法單元試卷(附答案)
- 放射科CT檢查注意事項
- 物流運輸服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 產(chǎn)業(yè)園招商培訓(xùn)
- 2026年齊齊哈爾高等師范??茖W(xué)校單招綜合素質(zhì)考試題庫必考題
- 2018版公路工程質(zhì)量檢驗評定標(biāo)準(zhǔn)分項工程質(zhì)量檢驗評定表路基土石方工程
- 導(dǎo)尿管相關(guān)尿路感染(CAUTI)防控最佳護理實踐專家共識解讀
- 2025年廣東深圳高中中考自主招生數(shù)學(xué)試卷試題(含答案詳解)
- SMETA員工公平職業(yè)發(fā)展管理程序-SEDEX驗廠專用文件(可編輯)
評論
0/150
提交評論