版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
胡元義版編譯原理課后習(xí)題答案 (2)在目標(biāo)代碼生成階段,符號(hào)表用于
。 a.目標(biāo)代碼生成b.語(yǔ)義檢查
c.語(yǔ)法檢查d.地址分配 (3)錯(cuò)誤的局部化是指
。 a.把錯(cuò)誤理解成局部的錯(cuò)誤
b.對(duì)錯(cuò)誤在局部范圍內(nèi)進(jìn)行糾正 c.當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí),跳過(guò)錯(cuò)誤所在的語(yǔ)法單位繼續(xù)分析下去 d.當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí)立即停止編譯,待用戶改正錯(cuò)誤后再繼續(xù)編譯 【解答】
(1)b(2)d(3)c 8.2在編譯過(guò)程中為什么要建立符號(hào)表? 【解答】
在編譯過(guò)程中始終要涉及到對(duì)一些語(yǔ)法符號(hào)的處理,這就需要用到語(yǔ)法符號(hào)的相關(guān)屬性。為了在需要時(shí)能找到這些語(yǔ)法成分及其相關(guān)屬性,就必須使用一些表格來(lái)保存這些語(yǔ)法成分及其屬性,這些表格就是符號(hào)表。 8.3對(duì)出現(xiàn)在各個(gè)分程序中的標(biāo)識(shí)符,掃描時(shí)是如何處理的?
【解答】
對(duì)掃描到各分程序中的標(biāo)識(shí)符的處理方法如下: (1)當(dāng)在一個(gè)分程序首部某說(shuō)明中掃描到一個(gè)標(biāo)識(shí)符時(shí),就以此標(biāo)識(shí)符查找相應(yīng)于本層分程序的符號(hào)表。如果符號(hào)表中已有此名字的登記項(xiàng),則表明此標(biāo)識(shí)符已被重復(fù)說(shuō)明(定義),應(yīng)按語(yǔ)法錯(cuò)誤進(jìn)行處理;否則,在符號(hào)表中新登記一項(xiàng)并將此標(biāo)識(shí)符及有關(guān)信息(種屬、類型、所分配的內(nèi)存單元地址等)填入。 (2)當(dāng)在一分程序的語(yǔ)句中掃描到一個(gè)標(biāo)識(shí)符時(shí),首先在該層分程序的符號(hào)表中查找此標(biāo)識(shí)符;若查不到,則繼續(xù)在其外層分程序的符號(hào)表中查找。如此下去,一旦在某一外層分程序的符號(hào)表中找到標(biāo)識(shí)符,則從表中取出有關(guān)的信息并作相應(yīng)的處理;如果查遍所有外層分程序的符號(hào)表都無(wú)法找到此標(biāo)識(shí)符,則表明程序中使用了一個(gè)未經(jīng)說(shuō)明(定義)的標(biāo)識(shí)符,此時(shí)可按語(yǔ)法錯(cuò)誤予以處理。 8.4對(duì)下列程序,當(dāng)編譯程序編譯到箭頭所指位置時(shí),畫出其層次表(分程序索引表)和符號(hào)表: programstack(output); varm,n:integer; r:real; proceduresetup(ns:integer,check:real); vark,l:integer; functiontotal(varat:integer,nt:integer):integer; vari,sum:integer;
beginfori:=1tontdosum:=sum+at[i];total:=sum;end; beginl:=27+total(a,ns);<-----------------end; beginn:=4;setup(n,5.75)end. 【解答】
編譯程序編譯到箭頭所指位置時(shí),其層次表(分程序索引表)和符號(hào)表如圖8-1所示。圖8-1分程序索引表和符號(hào)表示意圖
8.5已知文法G[S]:S→while(e)SS→{L}S→a/*a代表賦值句*/L→S;LL→S 構(gòu)造該文法的LR型的錯(cuò)誤校正分析程序?!窘獯稹?/p>
首先將文法G[S]拓廣為G[S′]:(0)S′→S(1)S→whileedoS(2)S→beginLend(3)S→a(4)L→S(5)L→S;L
則文法G[S′]的LR(0)項(xiàng)目集示范族為 I0:S′→·SI4:S→a·I10:L→S;·LS→·whileedoSI5:S→whilee·dos L→·SS→·beginLendI6:S→beginL·end L→·S;LS→·aI7:L→S· S→·whileedoSI1:S′→S·L→S·
;L S→·beginLendI2:S→while·edosI8:S→whileedo·S S→·a I3:S→begin·LendS→·whileedos I11:S→whileedoS·L→·S S→·beginLend I12:L→S;L·L→·S;L S→·aS→·whileedosI9:S→beginLend·S→·beginLendS→·a 將這些項(xiàng)目集的轉(zhuǎn)換函數(shù)GO表示為如圖8-2所示的DFA。圖8-2習(xí)題8.5中文法G[S′]的DFA 在LR(0)項(xiàng)目集規(guī)范族中,只有I7含有“移進(jìn)”/“歸約”沖突,且該沖突可用SLR(1)方法解決。為此計(jì)算文法G[S′]中每個(gè)非終結(jié)符的FOLLOW集如下:FOLLOW(S′)={#}FOLLOW(S)={end,;,#}FOLLOW(L)={end} 由此構(gòu)造出包括錯(cuò)誤校正處理子程序的SLR(1)分析表如表8-1所示。表8-1習(xí)題8.5的SLR(1)分析表
由表中可以看出,在狀態(tài)7面對(duì)輸入符號(hào)為“;”時(shí)移進(jìn),而面對(duì)輸入符號(hào)為“end”時(shí)為歸約。表中ei(i=1~7)代表不同的錯(cuò)誤處理子程序,其含義和功能分別如下: (1)輸出符號(hào)錯(cuò)處理程序e0:刪除當(dāng)前輸入符號(hào),顯示出錯(cuò)信息“輸入符號(hào)錯(cuò)”。 (2)輸入不匹配
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場(chǎng)施工防生物安全事故制度
- 小學(xué)生心理健康教育的校本課程設(shè)計(jì)研究
- DB4404T 72-2024電梯維修保養(yǎng)服務(wù)安全規(guī)范
- 不服合作合同爭(zhēng)議仲裁起訴狀范本
- 個(gè)人股權(quán)轉(zhuǎn)讓合作合同模板
- 兩人合伙創(chuàng)業(yè)合同范本
- 個(gè)人股權(quán)轉(zhuǎn)讓合同簡(jiǎn)單范文
- 二手房買賣合同簡(jiǎn)易版
- 個(gè)人公寓租賃合同范本
- 產(chǎn)學(xué)研一體化碩士專班合作協(xié)議合同
- 銷售人員課件教學(xué)課件
- 三級(jí)綜合醫(yī)院評(píng)審標(biāo)準(zhǔn)(2024年版)
- Lesson 6 What colour is it(教學(xué)設(shè)計(jì))-2023-2024學(xué)年接力版英語(yǔ)三年級(jí)下冊(cè)
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- NB/T 11446-2023煤礦連采連充技術(shù)要求
- 2024年江蘇省蘇州市中考英語(yǔ)試題卷(含標(biāo)準(zhǔn)答案及解析)
- 第五單元任務(wù)二《準(zhǔn)備與排練》教學(xué)設(shè)計(jì) 統(tǒng)編版語(yǔ)文九年級(jí)下冊(cè)
- 全科醫(yī)學(xué)的基本原則和人文精神(人衛(wèi)第五版全科醫(yī)學(xué)概論)
- 船員健康知識(shí)課件
- 《揚(yáng)州東關(guān)街掠影》課件
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》健康領(lǐng)域內(nèi)容目標(biāo)與指導(dǎo)
評(píng)論
0/150
提交評(píng)論