出版時間:2011-11 出版社:清華大學出版社 作者:孫悅紅 頁數(shù):256
內容概要
本書以通俗易懂的語言介紹編譯原理的理論和常用的方法與技術,并著重介紹各種編譯方法的實現(xiàn)途徑。全書共分10章,包括形式語言基礎、詞法分析、語法分析、語義分析及代碼生成、符號表管理、運行時的存儲分配,以及代碼優(yōu)化等??紤]目前學計算機專業(yè)的學生對c語言比較了解,本書以c語言為雛形沒計了一種test語言,并在介紹全書內容時,用test語言進行分析與實現(xiàn),使編譯原理的抽象性通過test語言編譯器的實現(xiàn)而具體化,從而使讀者輕松掌握編譯原理。
本書 理論與實踐并重,內容深入淺出,便于自學。每章后都提供了適量的習題。
本書 可作為高等學校計算機專業(yè)的教材,也可供從事計算機應用和開發(fā)的人員使用。
書籍目錄
第1章 編譯概述
1.1 程序設計語言
1.2 翻譯程序
1.3 編譯程序的組成
1.4 編譯程序的結構
1.5 編譯程序的前后處理器
1.6 test語言與編譯器
習題
第2章 文法和語言
2.1 字母表和符號串
2.2 文法
2.3 推導
2.4 句型和句子
2.5 語言
2.6 遞歸規(guī)則與遞歸文法
2.7 短語、簡單短語和句柄
2.8 語法樹
2.9 子樹與短語
2.10 由樹構造推導過程
2.11 文法的二義性
2.12 有關文法的實用限制
2.13 文法和語言分類
習題
第3章 詞法分析
3.1 詞法分析的功能
3.2 程序語言的單詞符號種類及詞法分析輸出
3.3 正則文法及狀態(tài)圖
3.4 詞法分析程序的設計與實現(xiàn)
3.5 正則表達式
3.6 有窮自動機
3.7 詞法分析程序的自動生成器lex
習題
第4章 語法分析——自頂向下分析
4.1 自頂向下分析方法
4.2 first集合和follow集合
4.3 遞歸下降分析
4.4 ll(1)分析方法
習題
第5章 語法分析——自底向上分析
5.1 規(guī)范推導、規(guī)范句型和規(guī)范歸約
5.2 自底向上分析方法的一般過程
5.3 lr分析方法
5.4 lr(0)分析器
5.5 slr(1)分析器
5.6 lr(1)分析器
5.7 lalr(1)分析器
5.8 語法分析程序的自動生成工具——yacc
習題
第6章 語法制導翻譯技術
6.1 翻譯文法
6.2 語法制導翻譯
6.3 自頂向下語法制導翻譯
6.4 屬性翻譯文法
6.5 屬性文法的自頂向下翻譯
6.6 自底向上語法制導翻譯
習題
第7章 符號表管理技術
7.1 何時建立和訪問符號表
7.2 符號表的組織和內容
7.3 符號表上的操作
7.4 非塊程序結構語言的符號表結構
7.5 塊程序結構語言的符號表組織
習題
第8章 程序運行時的存儲組織及管理
8.1 程序運行時的存儲組織
8.2 靜態(tài)存儲分配
8.3 棧式動態(tài)存儲分配
8.4 堆式動態(tài)存儲分配
習題
第9章 語義分析和代碼生成
9.1 語義分析的概念
9.2 中間代碼
9.3 聲明的處理
9.4 表達式語句
9.5 if語句
9.6 while語句
9.7 for循環(huán)語句
9.8 write_語句
9.9 read_語句
9.10 過程調用和返回
9.11 語義分析及代碼生成實現(xiàn)
9.12 錯誤處理
習題
第10章 代碼優(yōu)化
10.1 局部優(yōu)化
10.2 循環(huán)內的優(yōu)化
習題
附錄a test語言文法規(guī)則
a.1 test語言詞法規(guī)則
a.2 test的語法規(guī)則
a.3 test的語義和代碼生成
附錄b 詞法分析程序
b.1 詞法分析程序
b.2 主程序
附錄c 語法分析程序
c.1 語法分析程序
c.2 主程序
附錄d 語義及代碼生成程序
d.1 語法、語義及代碼生成程序
d.2 主程序
附錄 etest抽象機模擬器完整程序
e.1 testmachine函數(shù)
e.2 主程序
章節(jié)摘錄
版權頁:插圖:處理過程調用和返回時,主要涉及下列兩個基本問題:(1)實現(xiàn)程序中過程調用和返回的控制邏輯;(2)處理實在參數(shù)和形式參數(shù)之間的數(shù)據(jù)傳遞問題。在過程調用時,要將實在參數(shù)傳遞給形式參數(shù)。在執(zhí)行過程或從過程返回時,要將過程的處理結果返回給相應的主調過程。在過程調用時不同語言、不同性質的形式參數(shù)將采用不同的數(shù)據(jù)傳遞方式,而不同的數(shù)據(jù)傳遞方法又將對過程和過程調用的語義分析和代碼生成產生影響。9.10.1參數(shù)的基本傳遞形式目前,常見的參數(shù)傳遞有值傳遞、引用傳遞(地址傳遞)、值結果傳遞和名字傳遞。這里,只介紹兩個最常用的參數(shù)傳遞機制,即值傳遞和引用傳遞,對其他兩個傳遞機制有興趣的讀者可查閱有關書籍。1.值傳遞值傳遞又稱為值調用,它是最簡單的數(shù)據(jù)傳遞方式。在這種參數(shù)傳遞機制下,調用程序段要把實在參數(shù)的值計算出來,并存放在操作數(shù)棧、寄存器或被調過程能夠取得的數(shù)據(jù)單元中;而在被調用的子程序或函數(shù)中,首先要將實在參數(shù)的值送進相應的形式參數(shù)的數(shù)據(jù)單元中。編譯程序對過程體中形式參數(shù)的處理就像處理一般實在參數(shù)標識符那樣,生成目標代碼。在這種形式參數(shù)與實在參數(shù)的結合方式下,數(shù)據(jù)傳遞是單方向進行的,即調用段將實在參數(shù)的值傳遞到被調用段相應的形式參數(shù)的數(shù)據(jù)單元中;而在執(zhí)行被調用段的過程中,不可能將賦值形參的數(shù)據(jù)單元中的內容再傳回調用段的相應實在參數(shù)單元中去。C語言就采用這種參數(shù)傳遞機制。2.引用傳遞所謂引用傳遞就是傳遞地址,又叫引用調用。在這種參數(shù)傳遞機制下,調用程序段要將實在參數(shù)的地址傳遞給相應的形式參數(shù)。對于實際參數(shù)的各種情況,處理方法如下。(1)若實在參數(shù)是簡單變量,則編譯程序要生成將它們的地址保存在操作數(shù)棧、寄存器或某個被調過程能夠取得的數(shù)據(jù)單元的代碼;(2)若實在參數(shù)是數(shù)組元素,則除上述代碼外,在調用段中還應先有計算該數(shù)組元素地址的代碼;(3)若實在參數(shù)是表達式或常量,則編譯程序應先分配一個臨時數(shù)據(jù)單元,在調用程序中先要有計算表達式的值送進臨時數(shù)據(jù)單元中的代碼,還要有將該臨時數(shù)據(jù)單元的地址保存在操作數(shù)棧、寄存器或某個被調過程能夠取得的數(shù)據(jù)單元的目標代碼。而在被調程序段,對形參的處理方法是:首先將實在參數(shù)的地址抄進自己相應的形式參數(shù)的數(shù)據(jù)單元中。過程體中對形式參數(shù)的引用或賦值都將被處理成對形式參數(shù)數(shù)據(jù)單元的間接訪問。
編輯推薦
《編譯原理及實現(xiàn)(第2版)》教材以通俗易懂的語言講解編譯原理,包括詞法分析、語法分析、語義分析及代碼生成、符號表管理、運行時的存儲分配、代碼優(yōu)化等,并注重介紹各種編譯方法的應用實現(xiàn)。本教材考慮到目前學計算機專業(yè)的學生對C語言比較了解,以C語言為雛形設計了一種TEST語言,并建立該語言的詞法、語法、語義文法規(guī)則,系統(tǒng)介紹編譯過程的各個部分,擺脫了以往編譯教材的抽象以及理論與實際的脫節(jié),使編譯原理的抽象性通過TEsT語言的編譯器實現(xiàn)而具體化,從而使學習者輕松掌握編譯原理,目前多數(shù)已出版的編譯原理教材普遍偏重于理論,對實現(xiàn)技術講解的極少或根本沒有,而且教材內容過多,由于授課時數(shù)的限制以及學生接受能力的差異,教科書的內容往往不能充分利用,而《編譯原理及實現(xiàn)(第2版)》以通俗易懂的語言講解編譯原理,注重理論與實踐相結合,深入講解如何具體用C語言編程實現(xiàn)詞法分析、語法分析以及語義分析和代碼生成,從而使學習者不再畏懼編譯原理的學習,提高學習并動手編寫編譯器的興趣?
圖書封面
評論、評分、閱讀與下載