本書是與《編譯原理教程(第五版)》(胡元義主編,西安電子科技大學出版社)一書配套的習題解析與上機指導教材,也可單獨使用。本書的習題解析部分對《編譯原理教程(第五版)》中的習題進行了深入、細致的分析和解答,為讀者熟練掌握編譯原理知識,抓住重點,突破難點提供了有益的幫助。本書的上機指導部分包括由高級程序語言到中間語言,由匯編語言到機器語言的翻譯,使編譯的主要翻譯階段和環(huán)節(jié)都能微觀且實時地顯示出來,較好地解決了編譯原理的理論與實踐的銜接問題。此外,我們結合自己開發(fā)的8086/8088小匯編指令到機器代碼的翻譯成果,將8086/8088匯編指令到機器代碼的翻譯方法引入到書中,有利于讀者了解低級語言的翻譯過程和實現(xiàn)方法。
本書對《編譯原理教程(第四版)》中的習題進行了深入、細致的分析和解答,較好地解決了編譯原理的理論與實踐的銜接問題。
編譯原理是計算機專業(yè)的一門核心課程,在計算機本科教學中占有十分重要的地位。由于編譯原理課程具有很強的理論性和實踐性,因而學生在學習時普遍感到內容抽象,不易理解,掌握起來難度較大。本書通過習題解析的方式來幫助讀者理解編譯技術的原理和概念,掌握編譯原理的相關方法,提高分析問題與解決問題的能力。本書的上機指導部分則給讀者提供了一個完整的小型編譯程序,以便讀者上機實踐,較好地解決了編譯原理與實踐的銜接問題,使讀者對編譯原理有一個形象、直觀和透徹的認識和感受,能夠更深入地了解和掌握編譯原理的內容和實現(xiàn)方法。
本書是與編者在西安電子科技大學出版社出版的《編譯原理教程(第五版)》一書相配套的習題解析與上機指導教材,它也可以與目前各種編譯原理教材配套使用。本書分為兩篇,第一篇為編譯原理習題解析部分。為了便于讀者正確理解編譯原理的概念,掌握解題方法,本篇對《編譯原理教程(第五版)》一書中各章的習題都給出了詳盡的解題過程,對書中引用到的概念、原理和公式給出了出處;對有代表性的習題和疑難習題也給出了詳細的分析和解答。此外,對某些習題,本書還給出了一些新的解題思路和方法。本書的第二篇是編譯原理上機指導部分,給出了一個完整的小型編譯程序,該程序涵蓋了編譯原理的詞法分析、語法分析、中間代碼生成等各階段的內容。此外,還給出了8086/8088匯編語言到機器語言的翻譯程序。本書中的小型編譯程序可接受本書中文法規(guī)定的高級語言程序,將其翻譯成四元式代碼形式的中間語言程序,并且使編譯的主要翻譯階段和環(huán)節(jié)都能微觀且實時地顯示出來,有利于讀者深入了解編譯的內部過程和實現(xiàn)細節(jié),并為讀者開拓了進一步學習和運用編譯原理的視野。對目標代碼生成,國內的編譯教材只是籠統(tǒng)地介紹了從中間代碼到假想機匯編這一級的翻譯,對于計算機究竟是如何實現(xiàn)將匯編語言翻譯成可執(zhí)行的機器代碼的卻均無介紹。我們結合自己開發(fā)的8086/8088小匯編指令到機器代碼的翻譯成果,將8086/8088匯編指令到機器代碼的翻譯方法引入到書中,有利于讀者了解低級語言的翻譯過程和實現(xiàn)方法。
由于編者水平所限,本書難免存在差錯和不足,敬請廣大讀者批評指正。
編者
2021年11月
第一篇 編譯原理習題解析
第一章 緒論 1
第二章 詞法分析 3
第三章 語法分析 13
第四章 語義分析和中間代碼生成 56
第五章 代碼優(yōu)化 65
第六章 運行時存儲空間組織 74
第七章 目標代碼生成 81
第八章 符號表與錯誤處理 86
第二篇 編譯原理上機指導
第九章 小型編譯程序介紹 90
9.1 小型編譯程序結構 90
9.2 小型編譯程序關于高級語言的規(guī)定 90
9.3 小型編譯程序關于單詞的內部定義 92
9.4 小型編譯程序的LR分析表 93
9.5 小型編譯程序運行實例分析 95
第十章 上機實驗內容 100
10.1 實驗一 編譯程序的分析與驗證 100
10.2 實驗二 算術表達式的擴充 100
10.3 實驗三 添加新的程序語句(一) 101
10.4 實驗四 添加新的程序語句(二) 102
10.5 編譯原理課程設計 102
第十一章 高級語言到四元式的編譯程序 104
第十二章 8086/8088小匯編的設計與實現(xiàn) 129
12.1 匯編指令系統(tǒng)的分析 129
12.2 8086/8088小匯編的設計實現(xiàn) 136
12.3 8086/8088小匯編實驗 144
12.4 8086/8088小匯編程序 146
附錄1 8086/8088指令碼匯總表 199
附錄2 8086/8088指令編碼空間表 204
參考文獻 206