出版時間:2008-7 出版社:哈爾濱工程大學(xué)出版社 作者:張素莉 等 著 頁數(shù):250
前言
編譯技術(shù)是計算機(jī)語言發(fā)展的支柱,也是計算機(jī)科學(xué)中發(fā)展最迅速、最成熟的一個分支?!熬幾g原理”是一門研究設(shè)計和構(gòu)造編譯程序原理和方法的課程,是計算機(jī)及其相關(guān)專業(yè)的一門核心課程,在教學(xué)中占有極其重要的地位。該課程蘊(yùn)含著計算機(jī)學(xué)科中解決問題的思路及形式化問題和解決問題的方法。編譯程序是計算機(jī)系統(tǒng)軟件的重要組成部分,其基本原理和實現(xiàn)技術(shù)也適用于一般軟件的設(shè)計和實現(xiàn),因此對應(yīng)用軟件和系統(tǒng)軟件的設(shè)計與開發(fā)有一定的啟發(fā)和指導(dǎo)作用,在軟件工程、軟件自動化、軟件再工程、語言轉(zhuǎn)換、程序分析等領(lǐng)域具有廣泛的應(yīng)用。本書主要介紹設(shè)計和構(gòu)造編譯程序的一般原理、基本方法和主要實現(xiàn)技術(shù)。通過該課程的學(xué)習(xí),學(xué)生能夠掌握編譯系統(tǒng)的結(jié)構(gòu)、工作流程及編譯程序各組成部分的設(shè)計原理和常用的編譯技術(shù)和方法,為今后從事應(yīng)用軟件和系統(tǒng)軟件的開發(fā)奠定一定的理論和實踐基礎(chǔ)?! ”緯卜?章。第1章介紹了編譯程序的基礎(chǔ)知識,包括編譯工作的基本過程及各階段的基本任務(wù);第2章介紹了文法及語言的基本概念、文法分類、短語、簡單短語與句柄,語法樹和二義性等;第3章介紹了詞法分析程序的設(shè)計原理與構(gòu)造方法;第4章介紹了語法分析的基本思想和分析技術(shù),包括語法分析的任務(wù)、自頂向下分析法和自底向上分析法等;第5章介紹了語義分析與中間代碼的生成;第6章介紹了符號表的組織與管理,包括符號表的作用、符號表的組織和使用方法;第7章介紹了程序運(yùn)行時的存儲組織與分配技術(shù);第8章介紹了代碼優(yōu)化的基本概念、基本塊的劃分、局部優(yōu)化和循環(huán)優(yōu)化方法等;第9章介紹了目標(biāo)代碼生成的基本技術(shù)?! ”緯到y(tǒng)性強(qiáng),概念清晰,內(nèi)容簡明易懂,每章章首配有本章的學(xué)習(xí)目標(biāo)和學(xué)習(xí)要求,章末配有本章小結(jié)和適量的習(xí)題,使學(xué)習(xí)者可以快速掌握書中的內(nèi)容。該書根據(jù)編者多年的教學(xué)經(jīng)驗編寫而成,在成書的過程中編者參考了有關(guān)文獻(xiàn),在此向這些書籍的作者一并表示感謝。由于編者水平有限,時間倉促,書中難免存在一些缺點(diǎn)和不足,敬請讀者多提寶貴意見,以便再版時修訂補(bǔ)充。
內(nèi)容概要
《編譯原理》是一門研究設(shè)計和構(gòu)造編譯程序原理和方法的課程,是計算機(jī)專業(yè)的一門重要的核心課程。《“十一五”重點(diǎn)規(guī)劃教材·高等院校計算機(jī)及其應(yīng)用系列:編譯原理》系統(tǒng)介紹了編譯程序構(gòu)造的一般原理和基本實現(xiàn)方法,主要內(nèi)容包括詞法分析、語法分析、語義分析與中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成、符號表的組織與管理和運(yùn)行時的存儲組織與分配技術(shù)等?!丁笆晃濉敝攸c(diǎn)規(guī)劃教材·高等院校計算機(jī)及其應(yīng)用系列:編譯原理》內(nèi)容豐富,系統(tǒng)性強(qiáng),內(nèi)容循序漸進(jìn),實例豐富,文字簡練,通俗易懂,而且每章都配有各種類型的習(xí)題。
書籍目錄
第1章 編譯概述1.1 程序的翻譯1.2 編譯程序的組成1.3 編譯程序的構(gòu)造1.4 小結(jié)第2章 形式語言的基本知識2.1 字母表和符號串的基本概念2.2 文法和語言的形式定義2.3 語法樹與文法二義性2.4 文法和語言的分類2.5 小結(jié)第3章 詞法分析3.1 詞法分析的任務(wù)3.2 詞法分析程序的輸出形式3.3 詞法分析程序的設(shè)計與實現(xiàn)3.4 正規(guī)式與有窮自動機(jī)3.5 詞法分析程序的自動生成工具呶3.6 實例語言的詞法分析程序3.7 小結(jié)第4章 語法分析4.1 語法分析的任務(wù)4.2 自頂向下分析法4.3 自底向上分析法4.4 LR分析法4.5 語法分析程序的自動生成工具YACC4.6 實例語言編譯程序的語法分析4.7 小結(jié)第5章 語義分析與中間代碼的生成5.1 語義分析的任務(wù)5.2 語法制導(dǎo)翻譯5.3 中間代碼5.4 說明語句的翻譯5.5 賦值語句的翻譯5.6 布爾表達(dá)式的翻譯5.7 控制流語句的翻譯5.8 過程調(diào)用的翻譯5.9 實例編譯程序的語義分析5.10 小結(jié)第6章 符號表管理6.1 符號表的作用6.2 符號表的主要內(nèi)容和作用6.3 符號表的組織6.4 符號表的管理6.5 小結(jié)第7章 運(yùn)行時的存儲組織與分配7.1 存儲組織概述7.2 靜態(tài)存儲分配7.3 棧式動態(tài)存儲分配7.4 堆式動態(tài)存儲分配7.5 小結(jié)第8章 代碼優(yōu)化8.1 局部優(yōu)化8.2 循環(huán)優(yōu)化8.3 小結(jié)第9章 目標(biāo)代碼生成9.1 目標(biāo)代碼的形式9.2 假想的計算機(jī)模型9.3 一個簡單的代碼生成程序9.4 小結(jié)附錄A C語言實現(xiàn)的實例語言編譯程序附錄B YACC語言實現(xiàn)的實例語言編譯程序參考文獻(xiàn)
章節(jié)摘錄
(1)類型檢查確保程序的每一部分在語言的類型規(guī)則的作用下有意義。例如,參與運(yùn)算的操作數(shù)的類型應(yīng)相容,否則編譯器會報錯。 ?。?)控制流檢查用以保證控制語句擁有合法的轉(zhuǎn)向點(diǎn),即引起控制流從某個結(jié)構(gòu)中跳轉(zhuǎn)出來的語句必須能夠決定控制流轉(zhuǎn)向的目標(biāo)地址。如C語言中的break語句將導(dǎo)致控制流離開包含其最小的while,for和switch語句,如果找不到這樣的語句,將導(dǎo)致錯誤。 ?。?)一致性檢查有些情況下一個對象只能被定義一次。如相同作用域內(nèi)標(biāo)識符只能說明一次,case語句中的標(biāo)簽也應(yīng)該是唯一的?! 。?)相關(guān)名稱檢查有時候同樣的名字會多次出現(xiàn)。如Ada中,循環(huán)或塊中都將有一個名字同時出現(xiàn)在構(gòu)造器的開始和結(jié)束。編譯器將檢查同樣的名字可以在兩端被使用?! ?.1.2語義分析的任務(wù) 語義分析的根本任務(wù)是對源程序在進(jìn)行詞法分析和語法分析的基礎(chǔ)上,進(jìn)一步分析其含義,在理解其含義的基礎(chǔ)上為生成相應(yīng)的目標(biāo)代碼作準(zhǔn)備或者直接生成目標(biāo)代碼?! §o態(tài)語義分析包括執(zhí)行分析的描述和使用合適的算法對分析的實現(xiàn),它和詞法分析及語法分析相類似。例如,在語法分析中使用上下文無關(guān)文法描述語法結(jié)構(gòu),并用自頂向下或自底向上的分析算法實現(xiàn)語法結(jié)構(gòu)。在語義分析中,不能用正規(guī)文法或者上下文無關(guān)文法進(jìn)行描述,一個原因是沒有標(biāo)準(zhǔn)的方法來說明語言的靜態(tài)語義;另一個原因是對于各種語言,靜態(tài)語義分析的種類和總量的變化范圍很大。因此,語義的形式化描述是相當(dāng)困難的,目前常常使用的且實現(xiàn)得很好的描述語義分析方法是利用屬性文法描述程序設(shè)計語言的語義,然后采用語法制導(dǎo)翻譯的方法完成對語法單位的翻譯工作。 5.2語法制導(dǎo)翻譯 語法制導(dǎo)翻譯方法就是在語法分析中依隨分析的過程,根據(jù)每個產(chǎn)生式添加的語義動作進(jìn)行翻譯的方法。本節(jié)主要介紹屬性文法及其語法制導(dǎo)翻譯的概念?! ?.2.1屬性文法 屬性文法是Knuth于1968年提出來的,也被稱為屬性翻譯文法。屬性文法以上下文無關(guān)文法為基礎(chǔ),且為每個文法符號配備了一些屬性。屬性代表著上下文無關(guān)文法中每個文法符號的語義,這種語義符號可能由符號的類型、值、符號表的內(nèi)容,甚至一段代碼序列構(gòu)成,而且一個符號可以有多個屬性。屬性同變量一樣,可以進(jìn)行計算和傳遞,屬性加工的過程就是語義處理的過程。為文法的每個產(chǎn)生式配備的計算屬性規(guī)則稱為語義規(guī)則。通常情況下,文法的屬性分為繼承屬性和綜合屬性兩種?! ±^承屬性用于“自上而下”傳遞信息,即文法產(chǎn)生式右部符號的某些屬性是根據(jù)其左部符號的屬性和(或)右部的其他符號的某些屬性計算得到的。在語法樹中,一個節(jié)點(diǎn)的繼承屬性由此節(jié)點(diǎn)的父節(jié)點(diǎn)和(或)兄弟節(jié)點(diǎn)的某些屬性計算得到,即沿語法樹向下傳遞,由根節(jié)點(diǎn)到分枝節(jié)點(diǎn),反映了其對上下文依賴的特性。因而繼承屬性可以很方便地表示程序設(shè)計語言結(jié)構(gòu)中的上下文依賴關(guān)系?! ?/pre>圖書封面
評論、評分、閱讀與下載
- 還沒讀過(51)
- 勉強(qiáng)可看(370)
- 一般般(631)
- 內(nèi)容豐富(2618)
- 強(qiáng)力推薦(214)