版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.XXX 大 學(xué)實(shí)驗(yàn)報(bào)告課程名稱:編譯原理實(shí)驗(yàn)名稱:文法的化簡(jiǎn)和改造姓名: XXXX學(xué)號(hào): XXXX班級(jí): XXXX實(shí)驗(yàn)日期: XXXX1 / 9.一 . 實(shí)驗(yàn)?zāi)康?) 編寫文法的化簡(jiǎn)和改造程序;二 . 實(shí)驗(yàn)環(huán)境1) 硬件環(huán)境:計(jì)算機(jī);2) 軟件環(huán)境: C/C+ 編譯器;三 . 實(shí)驗(yàn)內(nèi)容1. 用 C/C+ 語(yǔ)言編寫方法的化簡(jiǎn)和改造程序,實(shí)現(xiàn)以下功能之一(如實(shí)現(xiàn)兩個(gè)功能,則滿分為 110 分;如實(shí)現(xiàn)三個(gè)功能,則滿分為120 分):(1)無用符號(hào)和無用產(chǎn)生式的刪除,參考課本中算法2.1 和算法 2.2。(2)-產(chǎn)生式的消除,參考課本中算法2.3、 2.4 和 2.5。(3) 單產(chǎn)生式的消除,參考課
2、本中算法2.6。從文件或終端中讀入文法,并將化簡(jiǎn)和改造后的文法輸出到另一文件或終端中。文法的表示如下:S->aSS->WS->UU->aV->bVV->acW->aW用空字符表示用大寫的拉丁字母表示文法的非終結(jié)符號(hào),用小寫的拉丁字母表示文法的終結(jié)符號(hào),每個(gè)產(chǎn)生式占一行,第一個(gè)產(chǎn)生式的左部為開始符號(hào)。在下面寫出代碼,并用課本2.4 節(jié)中相應(yīng)的例子進(jìn)行驗(yàn)證,提供相應(yīng)的截圖(對(duì)窗口截圖時(shí)先同時(shí)按alt 和 prtscn鍵,再按ctrl+v粘貼)答:2 / 9.:代碼 :/*單產(chǎn)生式的消除*/#include <iostream>#include
3、<cstring>using namespace std;typedef struct char left; char right10; chanshengshi;typedef struct head chanshengshi data; struct head* next; Head;struct vn char ch; vn *next; ;vn Vn;/the storage to store not-ending characterHead init;/the storage to store the chanshengshiHead solution;/the stor
4、age to store the solution of chanshengshibool isBigCase(char ch)/ whether the character ch is big case or small case ?if(ch>='A'&&ch<='Z')return true;elsereturn false;void getChanshengshi()/input chanshengshicout<<"input the Chanshengshi :(end with double
5、9;enter' key) "<<endl;chanshengshi temp;Head *p=&init;init.next=NULL;docin>>temp.left;cin.get(); cin.get();3 / 9.cin>>temp.right;if(isBigCase(temp.left)=false) /ensure the chanshengshi is not illegal cout<<"I'm sorry to tell you that"<<endl;co
6、ut<<"the left of the chanshengshi must be BIG-CASE character"<<endl;cout<<"please input it again! "<<endl;continue;p->next=new Head;p=p->next;p->data=temp;p->next=NULL;if(cin.get()='n')if(cin.peek()='n') break;while(true);bool b
7、elongToVn(char ch)vn *p=&Vn;while(p->next!=NULL) p=p->next; if(p->ch=ch) return true; return false;void getVn()Vn.next=NULL;vn *q=&Vn;Head *p=&init;while(p->next!=NULL)p=p->next;4 / 9.if(belongToVn(p->data.left) continue;q->next=new vn;q=q->next;q->ch=p->dat
8、a.left;q->next=NULL;void displayInit()Head *p=&init;while(p->next!=NULL)p=p->next;cout<<(p->data).left);cout<<"->"cout<<p->data.right;cout<<endl;void displayVn()vn *p=&Vn;while(p->next!=NULL)p=p->next;cout<<p->ch;cout<<
9、endl;Head* makeFrom(char ch)/return the chanshengshi begin with "char ch"Head* p=NULL;5 / 9.Head* h=NULL;Head *q=&init;while(q->next!=NULL)q=q->next;if(q->data.left=ch)/ 如果不是單產(chǎn)生式的話if( strlen(q->data.right)>1| !isBigCase(q->data).right0)if(p=NULL)p=new Head;h=p;elsep-&
10、gt;next=new Head;p=p->next;p->data.left=q->data.left;strcpy(p->data.right,q->data.right);p->next=NULL;else/ 是單產(chǎn)生式的話p->next=makeFrom(q->data.right0);while(p->next!=NULL)p=p->next;p->data.left=ch;return h;6 / 9.void operate()/generate the chanshengshi that answer with
11、the conditionsHead *r=&solution;solution.next=NULL;vn *p=&Vn;cout<<endl<<"solution:"<<endl;while(p->next!=NULL)p=p->next;/not-ending characterr->next=makeFrom(p->ch);while(r->next!=NULL) r=r->next;r=&solution;dor=r->next;cout<<r->data.left<<"->"<<r->data.right<<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版門診設(shè)備設(shè)施租賃與承包合同4篇
- 2025年度航空航天零部件加工與供應(yīng)分包合同3篇
- 二零二五年度離婚財(cái)產(chǎn)分割與子女撫養(yǎng)權(quán)分配合同4篇
- 2025年度美團(tuán)特色團(tuán)購(gòu)合作合同范本細(xì)則4篇
- 2 24-全國(guó)護(hù)理專業(yè)教學(xué) 資源庫(kù)-1738309514230
- 診斷與改進(jìn)“應(yīng)知應(yīng)會(huì)”50問
- 2025年度特色培訓(xùn)學(xué)校股份合作發(fā)展合同3篇
- 2025年度校園春游活動(dòng)團(tuán)隊(duì)旅游合同
- 二零二五年企業(yè)員工出差通訊費(fèi)用報(bào)銷及標(biāo)準(zhǔn)合同3篇
- 2025年度個(gè)人信用借款合同隱私保護(hù)措施2篇
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說明以及簡(jiǎn)單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
- Hypermesh lsdyna轉(zhuǎn)動(dòng)副連接課件完整版
評(píng)論
0/150
提交評(píng)論