定 價:49 元
叢書名:普通高等教育“十一五”國家級規(guī)劃教材 清華大學名優(yōu)教材立項資助 清華大學計算機系列教材
- 作者:王生原[等]編著
- 出版時間:2015/6/1
- ISBN:9787302381419
- 出 版 社:清華大學出版社
- 中圖法分類:TP314
- 頁碼:399
- 紙張:膠版紙
- 版次:3
- 開本:16K
《編譯原理第3版/清華大學計算機系列教材》介紹程序設計語言編譯程序構造的一般原理、基本設計方法和主要實現技術,主要內容包括文法、自動機和語言的基礎知識,詞法分析,語法分析,語法制導的語義計算,語義分析,中間代碼生成,運行時存儲組織,代碼優(yōu)化和目標代碼生成。
除了基本設計原理外,書中還包含兩個小型編譯程序的設計實例,可選作課程設計的素材。一個是PL/0語言編譯程序,其設計和實現框架貫穿于本書相關章節(jié)中;另一個是簡單面向對象語言Decaf的編譯程序。本書最后還介紹了業(yè)界廣泛使用的開源編譯器GCC及和它緊密相關的Binutils工具鏈,通過一系列程序實例說明這些工具的作用和基本用法。
《編譯原理第3版/清華大學計算機系列教材》可作為高等院校計算機科學與技術相關專業(yè)的本科生教材,也可作為相關教師、研究生或工程技術人員的參考書。
編譯程序(或編譯器、編譯系統(tǒng))在計算機科學與技術的發(fā)展歷史中發(fā)揮了巨大作用,是計算機系統(tǒng)的核心支撐軟件!熬幾g原理”一直以來是國內外大學計算機相關專業(yè)的重要課程,其知識結構貫穿程序設計語言、系統(tǒng)環(huán)境以及體系結構,能以相對獨立的視角體現從軟件到硬件以及軟硬件協同的整機概念;同時,其理論基礎又涉及形式語言與自動機、數據結構與算法等計算機學科的許多重要方面,不愧為聯系計算機科學理論和計算機系統(tǒng)的典范。這一知識體系所涉及的原理和技術不僅用于編寫編譯程序,也適用于很多軟件的設計。著名的計算機科學家A. V. Aho和J. D.Ullman在他們的著作中說: “在每一個計算機科學家的研究生涯中,這些原理和技術都會反復用到!
本書介紹程序設計語言編譯程序構造的一般原理、基本設計方法和主要實現技術,主要面向計算機科學與技術相關專業(yè)本科生的專業(yè)學習和素質培養(yǎng),也可供從事系統(tǒng)軟件和軟件工具研究及開發(fā)的人員參考。
全書共12章。前面幾章中有關詞法分析和語法分析的部分,基本上延續(xù)了本書前兩個版本的風格和內容,有利于之前閱讀和使用過這套教材的教師和學生銜接。新版本重新組織了語法制導的方法、語義分析、中間代碼生成、運行時存儲組織、代碼優(yōu)化和目標代碼生成等相關內容,進行了適當的充實與刪減,力求在各主要知識點之間達到某種較合理的均衡,使學生在本科層次的學習中盡可能對編譯程序的構造原理和實現技術從整體知識層面上有較好的掌握。
對于結合實例的講解,本書沿用了前兩個版本使用的PL/0編譯程序。PL/0編譯程序比較簡單,但不失代表性,在編譯原理教學中具有廣泛的使用基礎。通常情況下,學生能夠在很短的時間內掌握PL/0編譯程序的實現脈絡,對于快速了解一個具體編譯程序的作用和設計思想有很好的幫助。和前面的版本不同,第3版中是將PL/0編譯程序的介紹分散于不同章節(jié)中,不同學;驅I(yè)的課程可根據自身的情況選擇集中學習和分階段學習。
“編譯原理”是一門對實踐性要求較高的課程,通常應該設置專門的課程設計。書中涉及兩個小型編譯程序的設計實例,可選作課程設計的素材。一個是PL/0語言編譯程序,其設計和實現框架貫穿于全書相關章節(jié);另一個是簡單面向對象語言Decaf的編譯程序,參見第11章。不同學;驅I(yè)的課程可根據自身的情況制訂適當的課程設計方案。
近年來,在許多專業(yè)應用場合,熟練使用與編譯程序/系統(tǒng)相關的系統(tǒng)級軟件工具已成為必須掌握的基本技能之一。為此,本書安排了有關開源的GCC編譯器和相關工具鏈Binutils的章節(jié)(第12章),為學生將來有可能從事相關領域的工作進行基本和必要的準備。對于這部分內容,不同學校或專業(yè)的課程可根據自身情況引導或建議學生進行適當的訓練。
本書的第1章、第2章和第3章由張素琴和王生原共同編寫,第4章和第6章由呂映芝、張素琴和王生原共同編寫,第5章由呂映芝編寫,第7章和第11章由王生原編寫,第8章和第9章由王生原和蔣維杜共同編寫,第10章由董淵和王生原共同編寫,第12章由董淵編寫。
附錄中包含PL/0源程序的Pascal版本和C版本的代碼,Java版本的代碼可從清華大學出版社網站上獲取。另外,若相關課程需要用到Decaf編譯實驗框架的代碼,任課教師可與清華大學出版社或編者聯系(僅限于用作教學資源的共享與交流)。
適合在“編譯原理”課程中講授的內容非常廣泛,從國際上的著名教材來看,在側重點、內容和風格上都有相當大的差異。由于編者水平所限,書中必然存在不當和疏漏之處,誠請廣大讀者批評指正。
編者
2015年5月目錄
第1章引論
1.1什么是編譯程序
1.2編譯過程和編譯程序的結構
1.2.1編譯過程概述
1.2.2編譯程序的結構
1.2.3編譯階段的組合
1.3解釋程序和一些軟件工具
1.3.1解釋程序
1.3.2處理源程序的軟件工具
1.4PL/0語言編譯系統(tǒng)
1.4.1PL/0語言編譯系統(tǒng)構成
1.4.2PL/0語言
1.4.3類P—code語言
1.4.4PL/0編譯程序
1.4.5PL/0語言編譯系統(tǒng)的驅動代碼
練習
第2章文法和語言
2.1文法的直觀概念
2.2符號和符號串
2.3文法和語言的形式定義
2.4文法的類型
2.5上下文無關文法及其語法樹
2.6句型的分析
2.6.1自上而下的分析方法
2.6.2自下而上的分析方法
2.6.3句型分析的有關問題
2.7有關文法實際應用的一些說明
2.7.1有關文法的實用限制
2.7.2上下文無關文法中的ε規(guī)則
練習
第3章詞法分析
3.1詞法分析程序的設計
3.1.1詞法分析程序和語法分析程序的接口方式
3.1.2詞法分析程序的輸出
……
第4章自頂向下語法分析方法
第5章自底向上優(yōu)先分析
第6章LR分析
第7章語法制導的語義計算
第8章靜態(tài)語義分析和中間代碼生成
第9章運行時存儲組織
第10章代碼優(yōu)化和目標代碼生成
第11章課程設計
第12章編譯器和相關工具實例——GCC/Binutils
附錄APL/0編譯程序文本
參考文獻