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