




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精品好資料學(xué)習(xí)推薦實驗報告學(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。4.測試
2、實例:實例:輸入文法GE:E:=E+T|TT:=T*F|FF:=(E)|i實驗代碼如下:#include char GName10; typedef char SymbolT; SymbolT StartSymbol; typedef struct SymbolT LeftSym; SymbolT Rightpart20; int RightLength; RuleTC; RuleTC GrammarC20; SymbolTVT20; SymbolT VN20; int NVN=0,NVT=0; typedef struct int LeftSymNum; int RightpartNum20
3、; 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; k+) LeftS=GrammarCk.LeftSym; for(j=1; j=NVN; j+) if(LeftS=VNj) Grammark.L
4、eftSymNum=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) Grammark.RightpartNumj=m; break; Grammark.RightLength=GrammarCk.RightLength; void storeG( ) i
5、nt row,colum, k,j,m; char sym,U; RuleN=0; row=0; NVN=NVT=0; while(rowLineNumofG) colum=0; sym=Inputrowcolum; for(k=1; kNVN) VN+NVN=sym; GrammarC+RuleN.LeftSym=sym; colum=colum+4; j=0; while(Inputrowcolum!=0) sym=Inputrowcolum+; if(sym=|) GrammarCRuleN.RightLength=j;U=GrammarCRuleN.LeftSym; RuleN=Rul
6、eN+1; GrammarCRuleN.LeftSym=U; j=0; continue; j=j+1; GrammarCRuleN.Rightpartj=sym; for(k=1;kNVT)VT+NVT=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=
7、m-1; continue; GetGrammar( ); DispG( ) int k,j,m; printf(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(m100) printf(%c,VTm); else printf(%c,VNm-100); printf(n);
8、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(,); printf(%c n,VTNVT); void main( ) char c=Y; int j; printf(n 文法重寫規(guī)則:n); for(j=0; jLineNumofG; j+) printf(%sn,Inputj); printf(重新輸入文法的重
9、寫規(guī)則?(Y/N): ); scanf(%c,&c); if(c=Y | c=y) printf(輸入行數(shù)(一個規(guī)則一行):); scanf(%d,&LineNumofG); for(j=0; jLineNumofG; j+) scanf(%s,Inputj); storeG( ); DispG( ); 實驗結(jié)果:實例一:輸入文法GE:E:=E+T|TT:=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:=Aab|a b:=cbD|d d:=bDd|D實驗總結(jié)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)定明確的工作優(yōu)先級計劃
- 財務(wù)分析在企業(yè)評估中的應(yīng)用計劃
- 教學(xué)創(chuàng)新與成果分享機制計劃
- 防止職業(yè)倦怠的小技巧計劃
- 醫(yī)學(xué)影像科醫(yī)生工作計劃
- 建立員工反饋與建議機制計劃
- 2025年電動晾衣機項目合作計劃書
- 景區(qū)承包合同
- 珠寶定制服務(wù)特殊條款協(xié)議
- 農(nóng)產(chǎn)品電商項目開發(fā)合作框架協(xié)議
- 春節(jié)申遺成功的意義
- 子女放棄繼承房產(chǎn)協(xié)議書
- 施工方案與技術(shù)措施合理性、科學(xué)性與可行性
- 部編版小學(xué)語文二年級下冊電子課文《小馬過河》
- 《醫(yī)療機構(gòu)工作人員廉潔從業(yè)九項準(zhǔn)則》專題解讀
- 愛車講堂 課件
- 成立商會的可行性報告5則范文
- 小學(xué)體育課件《立定跳遠課件》課件
- 市場監(jiān)督管理局反電信網(wǎng)絡(luò)詐騙工作總結(jié)
- 2018中國技能?賽全國選拔賽“3D數(shù)字游戲藝術(shù)”項?技能樣題
- 2024-2030年中國免疫細胞存儲行業(yè)發(fā)展模式及投資戰(zhàn)略分析報告
評論
0/150
提交評論