![安工大王森玉編譯原理實驗報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/23/6f335745-e21e-4f75-8ad1-70d885d5deb1/6f335745-e21e-4f75-8ad1-70d885d5deb11.gif)
![安工大王森玉編譯原理實驗報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/23/6f335745-e21e-4f75-8ad1-70d885d5deb1/6f335745-e21e-4f75-8ad1-70d885d5deb12.gif)
![安工大王森玉編譯原理實驗報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/23/6f335745-e21e-4f75-8ad1-70d885d5deb1/6f335745-e21e-4f75-8ad1-70d885d5deb13.gif)
![安工大王森玉編譯原理實驗報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/23/6f335745-e21e-4f75-8ad1-70d885d5deb1/6f335745-e21e-4f75-8ad1-70d885d5deb14.gif)
![安工大王森玉編譯原理實驗報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/23/6f335745-e21e-4f75-8ad1-70d885d5deb1/6f335745-e21e-4f75-8ad1-70d885d5deb15.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、編譯原理實驗報告 老師:王森玉 姓名: 學號: 班級: 實驗內(nèi)容: 輸入一個文法 1. 求出每個非終結符的FIRST集合 2. 求出每個產(chǎn)生式右部的FIRST集合 3. 求出每個非終結符的Follow集合 實驗環(huán)境: Visual C+ 實驗目的: 讓同學們通過編寫代碼求出FIRST集合和FOLLOW,加深對這兩種集合 求法的理解。 實驗內(nèi)容一: 測試文法:S-S;D|D D-(T)|H H-a|(S) T-T+S|S 源碼:#include #include #define MAX 50 char cssMAXMAX;n); printf(用#表示空符號 ,非終結符用大寫字母表示,其他字符表
2、示終結符n); while(1) fgets(a,MAX*MAX,stdin); v=handle(a); if(v=-1) return -1; if(v=2) return 0; h=ai0) lj.num+; flag=1; break; else flag=0; if(!cnt)|(!flag) lcnt.ch=ai0; lcnt.flag=-1; lcnt.num=1; lcnt.s=0; lcnt.l=0; cnt+; flag=1; continue; c=count; while(c) for(i=0;ic;i+) h) lj.flag=1; break; i-; contin
3、ue; len=strlen(ai); for(j=3;jlen;j+) h) lk.num-; if(lk.num=0) lk.flag=0; break; if(i!=c-1) for(k=i;kc-1;k+) strcpy(ak,ak+1); c-; i-; flag2=0; continue; h) if(lk.flag=0) flag2=1; break; else if(lk.flag=1) for(t=j;tlen-1;t+) ait=ait+1; ailen-1=0; j-; len-; break; break; if(flag2) break; if(ai3=0) ch=a
4、i0; for(j=0;jc;j+) if(ch=aj0) if(j!=c-1) for(k=j;kc-1;k+) strcpy(ak,ak+1); c-; j-; else c-; j-; i-; for(k=0;kcnt;k+) if(ch=lk.ch) lk.flag=1; break; if(flag2) for(k=0;kcnt;k+) if(ai0=lk.ch) lk.num-; if(lk.num=0) lk.flag=0; if(i!=c-1) for(k=i;kc-1;k+) strcpy(ak,ak+1); c-; i-; flag2=0; continue; h) for
5、(t=0;tlk.s;t+) if(aij=lk.firstt) flag=1; break; if(!flag) lk.firstlk.s=aij; lk.s+; lk.firstlk.s=0; fchange=1; flag=0; break; h) for(t=0;tcnt;t+) if(ai0=lt.ch) for(t1=0;t1lk.s;t1+) for(t2=0;t2lt.s;t2+) if(lk.firstt1=lt.firstt2) break; if(t2=lt.s) lt.firstlt.s=lk.firstt1; lt.s+; lt.firstlt.s=0; break;
6、 break; if(lk.flag) continue; else break; if(!fchange) for(i=0;iS;D|D D-(T)|H H-a|(S) T-T+S|S 于符表不 PinsTcs FinSTCD FIMST FIRST 結符用大寫字母表示 -;DI 卜-MKD M-a!CS T-r+S! FIRST= a= aC FIRSTD: a FIflST:盤 FIRST: C FIBST: a FIRSTS?; at 部分源碼: ) flag=1; break; if(flag) flag=0; continue; strcpy(rj.a,cssi+3); rj.s=
7、O; cnt+; for(i=0;icnt;i+) len=strlen(ri.a); for(j=0;jlen;j+) j=#) ri.firstri.s=#; ri.s+; ri.firstri.s=0; break; else if(ri.ajZ) ri.firstri.s=ri.aj; ri.s+; ri.firstri.s=0; break; else for(k=0;kcnt;k+) if(ri.aj=lk.ch) len1=strlen(lk.first); for(t=0;tlen1;t+) if(lk.firstt!=#) ri.firstri.s=lk.firstt; ri
8、.s+; ri.firstri.s=0; break; if(lk.flag) if(j=len-1) ri.firstri.s=#; ri.s+; ri.firstri.s=0; continue; else break; for(i=0;iBoT!T r-raF!F F-nF:CBltlf 2 FIRSTCB: FIRST: nCtf n: nCtf FIRT: nCt PIHSTCTaFJ: nCtf FIRKF: nCtF PIRT(nF: n FIRT: C pmTCt: t FIRST: F FOLLOWSB: FOLLOLICT = F0LLQW = Press any key
9、to continue ollowl0.l=#; l0.l+; l0.followl0.l=0; while(1) fchange=0; for(i=0;ic;i+) len=strlen(ai); for(j=3;j=A)tcnt;t+) if(aij=lt.ch) for(t1=0;t1lt.s;t1+) if(lt.firstt1=#) continue; for(t2=0;t2=A)kcnt;k+) if(ch0=lk.ch) for(t=0;tcnt;t+) if(cht3=lt.ch) for(t1=0;t1lk.l;t1+) for(t2=0;t2lt.l;t2+) if(lk.
10、followt1=lt.followt2) break; if(t2!=lt.l) continue; else lt.followlt.l=lk.followt1; fchange=1; lt.l+; lt.followlt.l=0; if(lt.flag) cht3-=0; else flag=1; t3-; break; break; else break; flag=0; h) for(t=0;tlk.l;t+) if(aij=lk.followt) break; if(t=lk.l) fchange=1; lk.followlk.l=aij; lk.l+; lk.followlk.l=0; if(!fchange) for(i=0;icnt;i+) printf(FOLLOW(%c): %sn,li.ch,li.follow); break; 實驗感想 : 通過這幾次的編碼實驗,不僅加強了我對求 f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度金屬銅棒市場調(diào)研與預測服務合同范本
- 2025年度智能制造合伙創(chuàng)業(yè)合同協(xié)議書
- 連云港江蘇連云港市贛榆區(qū)招聘勞務派遣社區(qū)矯正專職社會工作者和行政復議輔助人員7人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州科學院招聘12人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州省人民檢察院直屬事業(yè)單位招聘3人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州大學附屬中學招聘6人筆試歷年參考題庫附帶答案詳解
- 衢州2025年浙江衢州職業(yè)技術學院高層次緊缺人才招引38人筆試歷年參考題庫附帶答案詳解
- 水解彈性蛋白項目融資計劃書
- 綿陽2025上半年四川綿陽梓潼縣考調(diào)事業(yè)單位工作人員10人筆試歷年參考題庫附帶答案詳解
- 2025年中國塑焊機市場調(diào)查研究報告
- 員工安全健康手冊
- 華為客服制度
- 2024年湖南高速鐵路職業(yè)技術學院單招職業(yè)適應性測試題庫及答案1套
- 醫(yī)美面部抗衰老注射項目培訓課件
- 2024-2029年中國限幅器芯片行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 醫(yī)療器械市場規(guī)劃
- 2024年3月山東省直監(jiān)獄類面試題及參考答案全套
- 新產(chǎn)品研發(fā)工作總結匯報
- Optix-OSN3500智能化光傳輸設備業(yè)務配置手冊范本
- swagelok管接頭安裝培訓教程
- 公墓管理考核方案
評論
0/150
提交評論