下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 2006年期末考試A卷參考答案一、(12分)簡(jiǎn)答題:簡(jiǎn)述編譯程序分成哪幾個(gè)階段。答: 編譯過(guò)程通常需要經(jīng)過(guò)詞法分析、語(yǔ)法分析、中間代碼生成、代碼優(yōu)化和目標(biāo)代碼生成五個(gè)階段。另外還包括表格管理和出錯(cuò)處理。為什么要將詞法分析與語(yǔ)法分析分離?答:將編譯過(guò)程的分析工作劃分成詞法分析和語(yǔ)法分析兩個(gè)階段的理由如下:(1)使整個(gè)編譯程序的結(jié)構(gòu)更簡(jiǎn)潔、清晰和條理化(2)編譯程序的效率會(huì)改進(jìn) ;(3)增強(qiáng)編譯程序的可移植性。二、(6分)敘述由下列正規(guī)式描述的語(yǔ)言: (a|b)*(aa|bb)(a|b)*。含有相繼2個(gè)a或b的a,b上的任意串。(0|1)(0|1)(0|1)0(0|1)* 第四位為0的0,1上的
2、任意串。三、(12分)構(gòu)造一個(gè)DFA,它接受=a,b上所有滿足下面條件的字符串,其條件是字符串中的每個(gè)b都有a直接跟在右邊。解:正規(guī)式為V=(a|ba)*首先構(gòu)造如下圖所示的NFA MXY(a|ba)*X1abaYX1aY2ba再構(gòu)造轉(zhuǎn)換矩陣如下表、下圖所示。012aabbIIaIbX,1,Y1,Y21,Y1,Y221,Y即:見(jiàn)下表Sab01211221化簡(jiǎn),先將狀態(tài)分終態(tài)組J1=0,1和非終態(tài)組J2=2考察J1,0,1a=10,1 0,1b=23不能再分組。重新命名上述狀態(tài)子集將0,1用1代替 將2用1代替,見(jiàn)下表。這樣得到如圖所示的簡(jiǎn)化后的DFA M。10ba0Sab001101四、 (2
3、0分)對(duì)于文法G(E)E E + T | T T T *F | F F PF | PP (E) | i計(jì)算FIRSTVT和LASTVT;該文法是算符優(yōu)先文法嗎?計(jì)算優(yōu)先關(guān)系。解:(1)構(gòu)造FIRSTVT集合的LASTVT集合。FIRSTVT(P)=(,i),FIRSTVT(F)=,(,i),FIRSTVT(T)=*,(,i),FIRSTVT(E)=+,*,(,i);LASTVT(P)=,i,LASTVT(F)= ,i,LASTVT(T)=*, ,i,LASTVT(E)=+,*, )(2)是算符優(yōu)先文法。(3)構(gòu)造算符優(yōu)先表如下。 +*()i#+*(= =) i#= =五、(14分)設(shè)有文法G(
4、E):E a|b|(F)F F,E| E給出句子(a,a),b,(a,b)的最右推導(dǎo);消除文法的左遞歸;改寫(xiě)后的文法是否是LL(1)的?為什么?出G的預(yù)測(cè)分析表。解:(1)最右推導(dǎo)為:E(F) (F,E) (F,(F) (F,(F,E) (F,(F,b) (F,(E,b) ( F,(a,b) (E,(a,b) (F,E,(a,b) (F,b,(a,b) (E,b,(a,b) (F),b,(a,b) (F,E),b,(a,b) (F,a),b,(a,b) (E,a),b,(a,b) (a,a),b,(a,b)(2)消除左遞歸,將文法改為:Ea|b|(F)FEFF,EF| (3)構(gòu)造該文法的FIR
5、ST集和FOLLOW集:FIREF(E)=FIREF(F)=a,b,()FIREF(F)=,, FOLLOW(E)=#, ,,FOLLOW(F)=FOLLOW(F)=) 改寫(xiě)后的文法是LL(1)的。(4)該文法的預(yù)測(cè)分析表如下表所示。ab(),#EEaEbE(F)FFEFFEFFEFFFF,EF六、(16分)對(duì)下述文法構(gòu)造LR型的錯(cuò)誤校正分析程序。(*優(yōu)先級(jí)高于+,同級(jí)運(yùn)算左結(jié)合)EE+EEE*EE(E)Ei并給出輸入串 (i+(*i) 的錯(cuò)誤校正處理過(guò)程。解:使用LR分析法進(jìn)行語(yǔ)法分析,當(dāng)輸入符號(hào)既不能移入棧頂,而棧內(nèi)符號(hào)又不能歸約時(shí),就意味著發(fā)現(xiàn)了輸入串中的語(yǔ)法錯(cuò)誤,立即調(diào)用相應(yīng)的錯(cuò)誤處理
6、子程序進(jìn)行錯(cuò)誤處理。前面給出的表達(dá)式文法G是一個(gè)二義性文法。下面給出與此文法相應(yīng)的包含錯(cuò)誤處理子程序的LR分析表。表中:Si表示把下一狀態(tài)i和現(xiàn)行輸入符號(hào)移進(jìn)棧;ri表示按第i個(gè)產(chǎn)生式進(jìn)行歸約,acc是接受狀態(tài);e1、e2、e3和e4是相應(yīng)的錯(cuò)誤處理子程序,其功能分別為:e1:/*處在狀態(tài)0、2、4、5時(shí),當(dāng)遇到+、*或#等符號(hào)時(shí),調(diào)用此程序*/將一假想的i和狀態(tài)3移進(jìn)棧,并打印錯(cuò)誤信息:“缺少運(yùn)算量”。e2:/*當(dāng)處在狀態(tài)0、1、2、4、5而遇到右括號(hào)時(shí),調(diào)用此程序*/從輸入端刪除右括號(hào)),并打印錯(cuò)誤信息:“右括號(hào)不配對(duì)”。輸入符號(hào)狀 態(tài)ACTIONGOTOi + * ( ) #E0S3 e
7、1 e1 S2 e2 e111e3 S4 S5 e3 e2 acc2S3 e1 e2 S2 e2 e163r4 r4 r4 r4 r4 r44S3 e1 e1 S2 e2 e175S3 e1 e1 S2 e2 e186e3 S4 S5 e3 S9 e47r1 r1 S5 r1 r1 r18r2 r2 r2 r2 r2 r29r3 r3 r3 r3 r3 r3e3:/*當(dāng)處在1或6狀態(tài)而又遇到i或左括號(hào))時(shí),調(diào)用此程序*/將運(yùn)算符+和狀態(tài)4移進(jìn)棧,并打印錯(cuò)誤信息:“缺少運(yùn)算符”。e3:/*當(dāng)處在1或6狀態(tài)而又遇到i或左括號(hào))時(shí),調(diào)用此程序*/將運(yùn)算符+和狀態(tài)4移進(jìn)棧,并打印錯(cuò)誤信息:“缺少運(yùn)算符
8、”。e4:/*當(dāng)處在狀態(tài)6,遇到#時(shí),調(diào)用此程序*/將右括號(hào))和狀態(tài)9移進(jìn)棧,并打印錯(cuò)誤信息:“缺少右括號(hào)”。下面給出出錯(cuò)處理過(guò)程,在此使用了一個(gè)狀態(tài)棧和一個(gè)符號(hào)棧,從而使分析過(guò)程更為清楚醒目。對(duì)輸入串 (i+(*i)的錯(cuò)誤校正處理過(guò)程如表所示:步 驟狀 態(tài) 棧符 號(hào) 棧輸 入 串附 注00#(i+(*i)#移進(jìn)102#(i+(*i)#移進(jìn)2023#(i+(*i)#歸約3026#(E+(*i)#移進(jìn)40264#(E+(*i)#移進(jìn)502642#(E+( *i)#調(diào)用e1,將i和狀態(tài)3移進(jìn)棧,并打印“缺運(yùn)算量”6026423#(E+(i *i)#歸約70266426#(E+(E *i)#移進(jìn)80
9、264065#(E+(E* i)#移進(jìn)902642653#(E+(E*i )#歸約步 驟狀 態(tài) 棧符 號(hào) 棧輸 入 串附 注1002642658#(E+(E*E )#歸約11026426#(E+(E )#移進(jìn)120264269#(E+(E) #歸約1302647#(E+E #歸約14026#(E #調(diào)用e4,將)和狀態(tài)9移進(jìn)棧,并打印“缺右括號(hào)150269#(E) #歸約1601#E #分析完畢七、(12分) 將下列語(yǔ)句if AB then z:=x-y else z:=x+y 翻譯成四元式序列.解: 100(J),A,B,102)101(J,,105)102(-,x,y, T1)103(:=,T1,z)( J,,107)105(+,x,y, T2)106(:=, T2,z)107八、(8分)給出算術(shù)表達(dá)式a+b*(c-d)+e/(c-d)的三元式、間接三元式、樹(shù)、四元式表示。解:三元式間接三元式 間接碼表 四元式(1) (-,c,d)(1) (-,c,d)(1) (1) (-,c,d,T1)(2) (*,b,(1)(2) (*,b,(1)(2) (2) (*,b, T1,T2)(3) (+,a,(2) (3) (
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西交利物浦大學(xué)《藥事管理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年獨(dú)立電影導(dǎo)演合作聘用協(xié)議2篇
- 二零二五版辦公室耗材專(zhuān)業(yè)配送與售后服務(wù)合同2篇
- 武昌職業(yè)學(xué)院《空間解析幾何》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版投資顧問(wèn)居間服務(wù)協(xié)議示范文本版B版
- 2025年度砂石料電商平臺(tái)支付結(jié)算合作協(xié)議3篇
- 中建四局2024年度標(biāo)準(zhǔn)建筑工程協(xié)議模板版
- 2025年度智能照明系統(tǒng)安裝與維護(hù)勞務(wù)外包合同范本2篇
- 二零二五年度貨物運(yùn)輸合同貨物損壞賠償及維修服務(wù)合同3篇
- 2024版家庭裝修簡(jiǎn)易合同范本
- 2024年四川省綿陽(yáng)市中考語(yǔ)文試卷(附真題答案)
- 設(shè)計(jì)材料與工藝課程 課件 第1章 產(chǎn)品設(shè)計(jì)材料與工藝概述
- 幼兒園反恐防暴技能培訓(xùn)內(nèi)容
- 食品企業(yè)質(zhì)檢員聘用合同
- 中醫(yī)診所內(nèi)外部審計(jì)制度
- 自然辯證法學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年國(guó)家危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全生產(chǎn)考試題庫(kù)(含答案)
- 護(hù)理員技能培訓(xùn)課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年資格考試-WSET二級(jí)認(rèn)證考試近5年真題集錦(頻考類(lèi)試題)帶答案
- 試卷中國(guó)電子學(xué)會(huì)青少年軟件編程等級(jí)考試標(biāo)準(zhǔn)python三級(jí)練習(xí)
評(píng)論
0/150
提交評(píng)論