出版時(shí)間:2009-5 出版社:機(jī)械工業(yè) 作者:Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman 頁數(shù):412 譯者:趙建華,鄭濤,戴新宇
Tag標(biāo)簽:無
前言
構(gòu)造編譯器的原理和技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域中一個(gè)非常重要的組成部分,指導(dǎo)人們構(gòu)造能夠生成正確。高效的代碼的編譯器。現(xiàn)在的絕大部分軟件都是使用高級程序設(shè)計(jì)語言編寫的,需要使用編譯器來得到可運(yùn)行代碼,因此編譯原理和技術(shù)對于構(gòu)造正確??煽?。高效的軟件是非常重要的。經(jīng)過了50年的研究發(fā)展,編譯技術(shù)已經(jīng)使得人們可以為各種高級編程機(jī)制生成高效的代碼,使得人們可以使用更加抽象的語言來編寫高效的軟件。但硬件技術(shù)的進(jìn)步仍然對編譯技術(shù)提出了新的挑戰(zhàn)。比如多核PU的廣泛應(yīng)用要求更優(yōu)秀的程序分析技術(shù)和并行編譯器。因此,編譯原理和技術(shù)在將來仍然是一個(gè)重要的研究課題。Aho等人編寫的《編譯原理》是一本經(jīng)典的教材。這本書不僅包含了編譯器構(gòu)造的基本原理和技術(shù),還包含了很多和編譯相關(guān)的高級技術(shù)。對于專業(yè)技術(shù)人員來說,這是一本很全面的參考書目。但是書中的很多內(nèi)容超出了本科教學(xué)的要求,不符合中國的本科教材的習(xí)慣。因此,出版社委托我們對這本書進(jìn)行改編,主要的工作是刪減一些不需要在本科教學(xué)過程中講授的內(nèi)容。保留下的內(nèi)容包括詞法分析。語法分析。語義分析。中間代碼生成,以及運(yùn)行時(shí)刻環(huán)境。優(yōu)化和代碼生成方法的基本技術(shù)。我們刪去了原書的第十章。第十一章和第十二章。這三章的內(nèi)容是關(guān)于并行性和程序分析的高級議題,一般不對本科生講授。此外,我們對原書第九章機(jī)器無關(guān)優(yōu)化的內(nèi)容進(jìn)行了刪減,保留了一些基本的數(shù)據(jù)流優(yōu)化算法。我們還刪減了一些高級的算法和技術(shù),包括運(yùn)行時(shí)刻環(huán)境中的短停頓垃圾收集算法。類型檢查中的類型推導(dǎo)和合一算法,高效構(gòu)造DF算法等。另外,我們還刪去了一些與實(shí)現(xiàn)細(xì)節(jié)有關(guān)的技術(shù),比如詞法分析中緩沖區(qū)的管理。語法分析中LR分析表的壓縮技術(shù)等。刪去了這些高級內(nèi)容之后,保留部分已經(jīng)可以在一個(gè)學(xué)期的本科生課程中講完。當(dāng)然,考慮到不同學(xué)校有不同的專業(yè)要求,任課教師仍然可以考慮舍棄一些內(nèi)容,比如第八章中關(guān)于代碼生成的高級議題編譯原理是一門比較難學(xué)的課程。主要原因在于它包含了很多理論性的東西,抽象程度比較高,而且還包含了很多復(fù)雜的算法和用于編譯器構(gòu)造的抽象數(shù)學(xué)概念。我建議學(xué)生學(xué)習(xí)的時(shí)候可以先閱讀本書的第二章。第二章的內(nèi)容可以幫助大家了解編譯器的基本構(gòu)造和功能,然后在學(xué)習(xí)后續(xù)各章節(jié)的時(shí)候加深理解。自己動手編寫一個(gè)小型語言的編譯器也是一個(gè)很好的學(xué)習(xí)方法。使用Y和Lex等工具之后,編寫一個(gè)這樣的編譯器并不需要很大的工作量,卻可以有效幫助大家深入理解各種編譯技術(shù)。
內(nèi)容概要
《編譯原理》是編譯原理課程方面的經(jīng)典教材,全面、深入地探討了編譯器設(shè)計(jì)方面的重要主題,包括詞法分析、語法分析、語法制導(dǎo)定義和語法制導(dǎo)翻譯、運(yùn)行時(shí)刻環(huán)境、目標(biāo)代碼生成、代碼優(yōu)化技術(shù)、并行性檢測以及過程間分析技術(shù),并在相關(guān)章節(jié)中給出大量的實(shí)例。與上一版相比,本書進(jìn)行了全面修訂,涵蓋了編譯器開發(fā)方面最新進(jìn)展。每章中都提供了大量的實(shí)例及參考文獻(xiàn)?! ”緯谠摃?版進(jìn)行改編,內(nèi)容更加精練和實(shí)用,體系更加符合國內(nèi)教學(xué)情況,適合作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)本科生的編譯原理課程的教材,也是廣大研究人員和技術(shù)人員的極佳參考讀物?! ”緯蔷幾g領(lǐng)域無可替代的經(jīng)典著作,被廣大計(jì)算機(jī)專業(yè)人士譽(yù)為“龍書”。本書上一版自1986年出版以來,被世界各地的著名高等院校和研究機(jī)構(gòu)(包括美國哥倫比亞大學(xué)。斯坦福大學(xué)、哈佛大學(xué)、普林斯頓大學(xué)。貝爾實(shí)驗(yàn)室)作為本科生和研究生的編譯原理課程的教材。該書對我國高等計(jì)算機(jī)教育領(lǐng)域也產(chǎn)生了重大影響?! 〉?版對每一章都進(jìn)行了全面的修訂,以反映自上一版出版20多年來軟件工程、程序設(shè)計(jì)語言和計(jì)算機(jī)體系結(jié)構(gòu)方面的發(fā)展對編譯技術(shù)的影響。第2版全面介紹了編譯器的設(shè)計(jì),并強(qiáng)調(diào)編譯技術(shù)在軟件設(shè)計(jì)和開發(fā)中的廣泛應(yīng)用。每章中都包含大量的習(xí)題和豐富的參考文獻(xiàn)?! ”緯谠摃?版進(jìn)行改編,保留其中的基本內(nèi)容,壓縮或刪除了一些高級內(nèi)容,更適合作為國內(nèi)高校計(jì)算機(jī)及相關(guān)專業(yè)本科生編譯原理課程教材。
作者簡介
Alfred V.Aho,美國哥倫比亞大學(xué)教授,美國國家工程院院士,ACM和IEE會士,曾獲得IEEE的馮•諾伊曼獎(jiǎng)。著有多部算法、數(shù)據(jù)結(jié)構(gòu)、編譯器、數(shù)據(jù)庫系統(tǒng)及計(jì)算機(jī)科學(xué)基礎(chǔ)方面的著作。
書籍目錄
出版者的話改編者序前言第1章 引論 1.1 語言處理器 1.2 一個(gè)編譯器的結(jié)構(gòu) 1.2.1 詞法分析 1.2.2 語法分析 1.2.3 語義分析 1.2.4 中間代碼生成 1.2.5 代碼優(yōu)化 1.2.6 代碼生成 1.2.7 符號表管理 1.2.8 將多個(gè)步驟組合成趟 1.2.9 編譯器構(gòu)造工具 1.3 程序設(shè)計(jì)語言的發(fā)展歷程 1.3.1 走向高級程序設(shè)計(jì)語言 1.3.2 對編譯器的影響 1.3.3 1.3節(jié)的練習(xí) 1.4 構(gòu)建一個(gè)編譯器的相關(guān)科學(xué) 1.4.1 編譯器設(shè)計(jì)和實(shí)現(xiàn)中的建?! ?.4.2 代碼優(yōu)化的科學(xué) 1.5 編譯技術(shù)的應(yīng)用 1.5.1 高級程序設(shè)計(jì)語言的實(shí)現(xiàn) 1.5.2 針對計(jì)算機(jī)體系結(jié)構(gòu)的優(yōu)化 1.5.3 新計(jì)算機(jī)體系結(jié)構(gòu)的設(shè)計(jì) 1.5.4 程序翻譯 1.5.5 軟件生產(chǎn)率工具 1.6 程序設(shè)計(jì)語言基礎(chǔ) 1.6.1 靜態(tài)和動態(tài)的區(qū)別 1.6.2 環(huán)境與狀態(tài) 1.6.3 靜態(tài)作用域和塊結(jié)構(gòu) 1.6.4 顯式訪問控制 1.6.5 動態(tài)作用域 1.6.6 參數(shù)傳遞機(jī)制 1.6.7 別名 1.6.8 1.6節(jié)的練習(xí) 1.7 第1章總結(jié) 1.8 第1章參考文獻(xiàn)第2章 一個(gè)簡單的語法制導(dǎo)翻譯器 2.1 引言 2.2 語法定義 2.2.1 文法定義 2.2.2 推導(dǎo) 2.2.3 語法分析樹 2.2.4 二義性 2.2.5 運(yùn)算符的結(jié)合性 2.2.6 運(yùn)算符的優(yōu)先級 2.2.7 2.2節(jié)的練習(xí) 2.3 語法制導(dǎo)翻譯 2.3.1 后綴表示 2.3.2 綜合屬性 2.3.3 簡單語法制導(dǎo)定義 2.3.4 樹的遍歷 2.3.5 翻譯方案 2.3.6 2.3節(jié)的練習(xí) 2.4 語法分析 2.4.1 自頂向下分析方法 2.4.2 預(yù)測分析法 2.4.3 何時(shí)使用產(chǎn)生式 2.4.4 設(shè)計(jì)一個(gè)預(yù)測分析器 2.4.5 左遞歸 2.4.6 2.4節(jié)的練習(xí) 2.5 簡單表達(dá)式的翻譯器 2.5.1 抽象語法和具體語法 2.5.2 調(diào)整翻譯方案 2.5.3 非終結(jié)符號的過程 2.5.4 翻譯器的簡化 2.5.5 完整的程序 2.6 詞法分析 2.6.1 剔除空白和注釋 2.6.2 預(yù)讀 2.6.3 常量 2.6.4 識別關(guān)鍵字和標(biāo)識符 2.6.5 詞法分析器 2.6.6 2.6節(jié)的練習(xí) 2.7 符號表 2.7.1 為每個(gè)作用域設(shè)置一個(gè)符號表 2.7.2 符號表的使用 2.8 生成中間代碼 2.8.1 兩種中間表示形式 2.8.2 語法樹的構(gòu)造 2.8.3 靜態(tài)檢查 2.8.4 三地址碼 2.8.5 2.8節(jié)的練習(xí) 2.9 第2章總結(jié)第3章第4章 語法分析第5章 語法制導(dǎo)的翻譯第6章 中間代碼生成第7章 運(yùn)行時(shí)刻環(huán)境第8章 代碼生成第9章 機(jī)器無關(guān)優(yōu)化附錄 一個(gè)完整的編譯器前端
章節(jié)摘錄
插圖:第1章 引論程序設(shè)計(jì)語言是向人以及計(jì)算機(jī)描述計(jì)算過程的記號。如我們所知,這個(gè)世界依賴于程序設(shè)計(jì)語言,因?yàn)樵谒杏?jì)算機(jī)上運(yùn)行的所有軟件都是用某種程序設(shè)計(jì)語言編寫的。但是,在一個(gè)程序可以運(yùn)行之前,它首先需要被翻譯成一種能夠被計(jì)算機(jī)執(zhí)行的形式。完成這項(xiàng)翻譯工作的軟件系統(tǒng)稱為編譯器(compiler)。本書介紹的是設(shè)計(jì)和實(shí)現(xiàn)編譯器的方法。我們將介紹用于構(gòu)建面向多種語言和機(jī)器的翻譯器的一些基本思想。編譯器設(shè)計(jì)的原理和技術(shù)還可以用于編譯器設(shè)計(jì)之外的眾多領(lǐng)域。因此,這些原理和技術(shù)通常會在一個(gè)計(jì)算機(jī)科學(xué)家的職業(yè)生涯中多次被用到。研究編譯器的編寫將涉及程序設(shè)計(jì)語言、計(jì)算機(jī)體系結(jié)構(gòu)、形式語言理論、算法和軟件工程。在本章中,我們將介紹語言翻譯器的不同形式,在高層次上概述一個(gè)典型編譯器的結(jié)構(gòu),并討論了程序設(shè)計(jì)語言和硬件體系結(jié)構(gòu)的發(fā)展趨勢。這些趨勢將影響編譯器的形式。我們還將介紹關(guān)于編譯器設(shè)計(jì)和計(jì)算機(jī)科學(xué)理論的關(guān)系的一些事實(shí),并給出編譯技術(shù)在編譯領(lǐng)域之外的一些應(yīng)用。最后,我們將簡單論述在我們研究編譯器時(shí)需要用到的重要的程序設(shè)計(jì)語言概念。
編輯推薦
《編譯原理(本科教學(xué)版第2版)》是編譯領(lǐng)域無可替代的經(jīng)典著作,被廣大計(jì)算機(jī)專業(yè)人士譽(yù)為“龍書”?!毒幾g原理(本科教學(xué)版第2版)》上一版自1986年出版以來,被世界各地的著名高等院校和研究機(jī)構(gòu)(包括美國哥倫比亞大學(xué)、斯坦福大學(xué)、哈佛大學(xué)、普林斯頓大學(xué)、貝爾實(shí)驗(yàn)室)作為本科生和研究生的編譯原理課程的教材。該書對我國高等計(jì)算機(jī)教育領(lǐng)域也產(chǎn)生了重大影響。編譯領(lǐng)域里程碑式的經(jīng)典著作——龍書,20年后終于出版新版!這是一個(gè)延綿30年的故事,這是一部關(guān)于龍書的傳奇!最新版本,增添兩章節(jié)內(nèi)容,使龍書地位更權(quán)威!第2版對每一章都進(jìn)行了全面的修訂,以反映自上一版出版20多年來軟件工程。程序設(shè)計(jì)語言和計(jì)算機(jī)體系結(jié)構(gòu)方面的發(fā)展對編譯技術(shù)的影響?!毒幾g原理(本科教學(xué)版第2版)》全面介紹了編譯器的設(shè)計(jì),并強(qiáng)調(diào)編譯技術(shù)在軟件設(shè)計(jì)和開發(fā)中的廣泛應(yīng)用。每章中都包含大量的習(xí)題和豐富的參考文獻(xiàn)?!毒幾g原理(本科教學(xué)版第2版)》適合作為高等院校計(jì)算機(jī)專業(yè)本科生和研究生的編譯原理與技術(shù)課程的教材,也可供廣大計(jì)算機(jī)技術(shù)人員參考。1977年,Alfred V.Aho和Jeffrey D.Ullman合作出版了《Principies of Compilet Design》,封面是一位騎士和一只恐龍,那恐龍是綠色的,因此被稱為龍書或綠龍書。1986年,原來的兩位作者加上Ravi Sethi,升級了前一《編譯原理(本科教學(xué)版第2版)》,書名改為《compiIers:Principles,Techniques and Tools》,封面依然沿用騎士和恐龍,那恐龍是紅色的,因此被稱為龍書二或者紅龍書。又過了一個(gè)9年又一個(gè)9年,編譯領(lǐng)域的巨無霸——龍書始終都沒有升級。終于在2006年底,龍書升級了。作者又增加了Monica S.Lam,名字與龍書二相同,封面依然沿用恐龍和武士的設(shè)計(jì),這次的龍是紫色的,因此被稱為龍書三或者紫龍書。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載