




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
胡元義版編譯原理課后習題答案 (2)在目標代碼生成階段,符號表用于
。 a.目標代碼生成b.語義檢查
c.語法檢查d.地址分配 (3)錯誤的局部化是指
。 a.把錯誤理解成局部的錯誤
b.對錯誤在局部范圍內(nèi)進行糾正 c.當發(fā)現(xiàn)錯誤時,跳過錯誤所在的語法單位繼續(xù)分析下去 d.當發(fā)現(xiàn)錯誤時立即停止編譯,待用戶改正錯誤后再繼續(xù)編譯 【解答】
(1)b(2)d(3)c 8.2在編譯過程中為什么要建立符號表? 【解答】
在編譯過程中始終要涉及到對一些語法符號的處理,這就需要用到語法符號的相關(guān)屬性。為了在需要時能找到這些語法成分及其相關(guān)屬性,就必須使用一些表格來保存這些語法成分及其屬性,這些表格就是符號表。 8.3對出現(xiàn)在各個分程序中的標識符,掃描時是如何處理的?
【解答】
對掃描到各分程序中的標識符的處理方法如下: (1)當在一個分程序首部某說明中掃描到一個標識符時,就以此標識符查找相應于本層分程序的符號表。如果符號表中已有此名字的登記項,則表明此標識符已被重復說明(定義),應按語法錯誤進行處理;否則,在符號表中新登記一項并將此標識符及有關(guān)信息(種屬、類型、所分配的內(nèi)存單元地址等)填入。 (2)當在一分程序的語句中掃描到一個標識符時,首先在該層分程序的符號表中查找此標識符;若查不到,則繼續(xù)在其外層分程序的符號表中查找。如此下去,一旦在某一外層分程序的符號表中找到標識符,則從表中取出有關(guān)的信息并作相應的處理;如果查遍所有外層分程序的符號表都無法找到此標識符,則表明程序中使用了一個未經(jīng)說明(定義)的標識符,此時可按語法錯誤予以處理。 8.4對下列程序,當編譯程序編譯到箭頭所指位置時,畫出其層次表(分程序索引表)和符號表: 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. 【解答】
編譯程序編譯到箭頭所指位置時,其層次表(分程序索引表)和符號表如圖8-1所示。圖8-1分程序索引表和符號表示意圖
8.5已知文法G[S]:S→while(e)SS→{L}S→a/*a代表賦值句*/L→S;LL→S 構(gòu)造該文法的LR型的錯誤校正分析程序。【解答】
首先將文法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)項目集示范族為 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 將這些項目集的轉(zhuǎn)換函數(shù)GO表示為如圖8-2所示的DFA。圖8-2習題8.5中文法G[S′]的DFA 在LR(0)項目集規(guī)范族中,只有I7含有“移進”/“歸約”沖突,且該沖突可用SLR(1)方法解決。為此計算文法G[S′]中每個非終結(jié)符的FOLLOW集如下:FOLLOW(S′)={#}FOLLOW(S)={end,;,#}FOLLOW(L)={end} 由此構(gòu)造出包括錯誤校正處理子程序的SLR(1)分析表如表8-1所示。表8-1習題8.5的SLR(1)分析表
由表中可以看出,在狀態(tài)7面對輸入符號為“;”時移進,而面對輸入符號為“end”時為歸約。表中ei(i=1~7)代表不同的錯誤處理子程序,其含義和功能分別如下: (1)輸出符號錯處理程序e0:刪除當前輸入符號,顯示出錯信息“輸入符號錯”。 (2)輸入不匹配
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國純水設(shè)備行業(yè)供需趨勢及投資風險研究報告
- 2025-2030中國紅外線食品烘干機行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國紫外線凈水器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 四年級數(shù)學(上)計算題專項練習及答案
- 五年級數(shù)學(小數(shù)乘除法)計算題專項練習及答案匯編
- 小學班主任在提升學業(yè)成績中的職責
- 電大法學專業(yè)社會調(diào)查報告范文
- 張掖導靜電地坪施工方案
- 2025春季幼兒園學習評估計劃
- 科研機構(gòu)安全管理體系與職責分配
- 2025湖北省建筑安全員《C證》考試題庫及答案
- 八年級下冊《勾股定理的逆定理》課件與練習
- 市政排水管網(wǎng)改造項目背景與必要性
- 外科學-闌尾疾病
- 2025年西安印鈔有限公司招聘筆試參考題庫含答案解析
- 《全國森林經(jīng)營規(guī)劃(2016-2050年)》
- 起重司索工安全操作規(guī)程范文(2篇)
- 高質(zhì)量金融人才職業(yè)發(fā)展報告 2024
- 施工現(xiàn)場動火分級審批制度(3篇)
- 2024年黑龍江哈爾濱市中考化學真題卷及答案解析
- 2025年“兩新”領(lǐng)域超長期特別國債項目申報策略
評論
0/150
提交評論