出版時間:2010-9 出版社:機(jī)械工業(yè) 作者:賀汛 頁數(shù):287
前言
編譯技術(shù)是計(jì)算機(jī)語言發(fā)展的支柱,也是計(jì)算機(jī)科學(xué)中發(fā)展最迅速、最成熟的分支之一。編譯原理課程是繼C語言程序設(shè)計(jì)、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)等課程后,對工科計(jì)算機(jī)專業(yè)開設(shè)的一門重要課程,在教學(xué)中占有十分重要的地位。編譯的一般原理和基本技術(shù)不僅適用于構(gòu)造程序設(shè)計(jì)語言的編譯程序,也適用于各種系統(tǒng)軟件、應(yīng)用軟件的設(shè)計(jì)和實(shí)現(xiàn)。其中的形式語言理論和自動機(jī)理論,通過對問題的抽象、描述和識別,從本質(zhì)上對問題進(jìn)行認(rèn)識和分析,并加以解決,這種思維方法對學(xué)生抽象思維能力的培養(yǎng)有著極其積極的意義。編譯原理課程與數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)、程序設(shè)計(jì)語言等課程的聯(lián)系也甚為密切。可以說,編譯是這些課程的綜合應(yīng)用,對這些課程內(nèi)容的理解和鞏固起到了良好的作用?! ∽髡呔帉懕窘滩牡闹鲗?dǎo)思想是:以培養(yǎng)抽象思維能力為目的,在介紹編譯相關(guān)的理論、工具和方法的同時,重點(diǎn)強(qiáng)調(diào)問題的抽象描述和問題分析的思路,以求提高學(xué)生分析問題解決問題的能力,同時通過實(shí)際編程,提高學(xué)生理論應(yīng)用于實(shí)踐的能力,提高程序設(shè)計(jì)水平?! ”窘滩膬?nèi)容共分3部分:第1部分即第1章,簡單介紹編譯的基本過程和編譯程序的基本結(jié)構(gòu);第2部分包括第2章的形式語言和文法、第3章的有窮自動機(jī),介紹形式語言理論中有關(guān)語言和文法的基本知識、自動機(jī)理論中的有窮自動機(jī)的相關(guān)內(nèi)容,為后續(xù)編譯方法的介紹做基礎(chǔ)理論準(zhǔn)備;第3部分從第4章開始,按編譯的過程逐一介紹編譯的各個階段的任務(wù)、原理和實(shí)現(xiàn)的基本技術(shù),包括第4章的詞法分析方法、第5~7章的自頂向下和自底向上兩大類語法分析方法、第8章的自底向上語法制導(dǎo)翻譯技術(shù)、第11章的中間代碼優(yōu)化中的基本塊優(yōu)化技術(shù)和循環(huán)優(yōu)化技術(shù),以及第12章的基本塊目標(biāo)代碼生成方法,另外,第9章介紹了編譯程序的重要組成部分——符號表,以及有關(guān)符號表的組織與操作,第10章介紹了與編譯相關(guān)的程序運(yùn)行時的存儲空間組織問題。
內(nèi)容概要
《編譯方法(第2版)》介紹程序設(shè)計(jì)語言的編譯程序的設(shè)計(jì)技術(shù),主要由編譯程序的基本結(jié)構(gòu)、形式語言和自動機(jī)理論的基礎(chǔ)知識、編譯過程各階段的工作原理與實(shí)現(xiàn)方法三大部分組成。 《編譯方法(第2版)》內(nèi)容通俗易懂,敘述簡明,強(qiáng)調(diào)抽象思維,突出理論與實(shí)踐的結(jié)合。為便于學(xué)生及時復(fù)習(xí)與鞏固所學(xué)知識,在各章的最后給出了典型例題、內(nèi)容小結(jié)和練習(xí)題。書中還設(shè)計(jì)了兩套實(shí)驗(yàn),一套是局部性的針對某一算法的編程實(shí)驗(yàn),每個程序相對獨(dú)立;另一套是綜合性實(shí)驗(yàn),為一個小語言構(gòu)造完整的編譯程序。兩套實(shí)驗(yàn)可根據(jù)學(xué)生情況進(jìn)行適當(dāng)?shù)倪x擇?! 毒幾g方法(第2版)》適合作為高校計(jì)算機(jī)專業(yè)的教材,也可供從事計(jì)算機(jī)應(yīng)用和軟件開發(fā)的工程技術(shù)人員自學(xué)。
書籍目錄
出版說明前言第1章 概述1.1 程序設(shè)計(jì)語言與程序1.1.1 程序設(shè)計(jì)語言的定義1.1.2 程序設(shè)計(jì)語言的分類1.1.3 程序及其結(jié)構(gòu)1.1.4 高級語言程序的處理過程1.2 編譯程序1.2.1 編譯與解釋1.2.2 編譯過程和編譯程序的結(jié)構(gòu)1.2.3 編譯程序的生成1.2.4 編譯程序與程序設(shè)計(jì)環(huán)境1.3 編譯技術(shù)的應(yīng)用1.4 本章 小結(jié)1.5 習(xí)題第2章 形式語言和文法2.1 形式語言2.1.1 語言的概念2.1.2 語言的定義方式2.2 文法2.2.1 文法的形式定義2.2.2 文法的表示方法2.2.3 相關(guān)概念2.3 文法的分類和化簡2.3.1 文法的分類2.3.2 兩個定理2.3.3 文法的化簡2.4 文法的二義性2.5 典型例題2.6 本章 小結(jié)2.7 習(xí)題第3章 有窮自動機(jī)3.1 正規(guī)式與正規(guī)集3.1.1 概念3.1.2 正規(guī)式和正規(guī)文法的等價(jià)性3.2 有窮自動機(jī)3.2.1 有窮自動機(jī)3.2.2 確定的有窮自動機(jī)3.2.3 不確定的有窮自動機(jī)3.2.4 NFA與DFA的等價(jià)性3.2.5 DFA的化簡3.3 正規(guī)式和FA的等價(jià)性3.3.1 構(gòu)造與FA等價(jià)的正規(guī)式3.3.2 構(gòu)造與正規(guī)式等價(jià)的FA3.4 正規(guī)文法和FA的等價(jià)性3.4.1 構(gòu)造與正規(guī)文法等價(jià)的FA3.4.2 構(gòu)造與FA等價(jià)的正規(guī)文法3.5 典型例題3.6 本章 小結(jié)3.7 習(xí)題3.8 實(shí)驗(yàn)第4章 詞法分析4.1 詞法分析的任務(wù)4.2 程序設(shè)計(jì)語言的單詞4.2.1 單詞的種類4.2.2 單詞的機(jī)內(nèi)表示方法4.3 單詞的形式描述4.3.1 正規(guī)式描述4.3.2 正規(guī)文法描述4.4 詞法分析程序的構(gòu)造4.4.1 根據(jù)DFA構(gòu)造詞法分析程序4.4.2 詞法分析程序構(gòu)造的相關(guān)問題4.5 詞法分析程序的自動生成工具LEx簡介4.5.1 LEX語言源程序4.5.2 LEX編譯程序工作原理4.6 典型例題4.7 本章 小結(jié)4.8 習(xí)題4.9 實(shí)驗(yàn)第5章 自頂向下語法分析5.1 程序設(shè)計(jì)語言的語法描述5.2 自頂向下的語法分析概述5.2.1 自頂向下的語法分析方法5.2.2 確定的自頂向下的語法分析方法5.2.3 不確定的自頂向下的語法分析方法5.3 LL(1)文法5.3.1 “回溯”的原因5.3.2 “回溯”的消除5.3.3 LL(1)文法的定義5.4 預(yù)測分析法5.4.1 預(yù)測分析表5.4.2 分析棧5.4.3 預(yù)測分析程序5.5 遞歸下降分析法5.6 典型例題5.7 本章 小結(jié)5.8 習(xí)題5.9 實(shí)驗(yàn)第6章 算符優(yōu)先分析6.1 自底向上語法分析概述6.1.1 自底向上語法分析過程6.1.2 自底向上語法分析的實(shí)現(xiàn)6.1.3 短語和句柄6.2 簡單優(yōu)先分析法6.2.1 優(yōu)先關(guān)系6.2.2 簡單優(yōu)先文法6.2.3 簡單優(yōu)先分析法6.3 算符優(yōu)先分析法6.3.1 算符優(yōu)先文法6.3.2 算符優(yōu)先分析算法6.4 優(yōu)先函數(shù)6.4.1 優(yōu)先函數(shù)的定義6.4.2 優(yōu)先函數(shù)的構(gòu)造6.5 典型例題6.6 本章 小結(jié)6.7 習(xí)題6.8 實(shí)驗(yàn)第7章 LR分析法7.1 LR分析概述7.1.1 分析思想7.1.2 分析器組成7.2 LR(0)分析表7.2.1 LR(O)項(xiàng)目集規(guī)范族7.2.2 LR(O)文法7.2.3 LR(o)分析器的工作過程7.3 SLR(1)分析表7.3.1 SLR(1)文法7.3.2 SLR(1)分析表的構(gòu)造7.4 LR(1)分析表7.4.1 LR(1)文法7.4.2 LR(1)項(xiàng)目集規(guī)范族的構(gòu)造7.4.3 LR(1)分析表的構(gòu)造7.5 LALR(1)分析表7.5.1 LALR(1)文法7.5.2 LALR(1)分析表的構(gòu)造7.6 語法分析程序的自動生成工具YACC簡介7.6.1 YACC對語言的要求7.6.2 YACC的輸入/輸出7.6.3 YACC源程序7.7 典型例題7.8 本章 小結(jié)7.9 習(xí)題7.10 實(shí)驗(yàn)第8章 語義分析和中間代碼生成第9章 符號表第10章 運(yùn)行時存儲空間的組織第11章 代碼優(yōu)化第12章 目標(biāo)代碼生成附錄參考文獻(xiàn)
章節(jié)摘錄
眾所周知,計(jì)算機(jī)硬件并不懂得BASIC、Pascal、C、C++、Ada、Java等高級程序設(shè)計(jì)語言,它所能執(zhí)行的僅僅是O/I代碼的機(jī)器語言,但高級語言之所以能以其獨(dú)特的優(yōu)勢而被廣泛使用,其原因就在于翻譯程序的存在。翻譯程序能將高級語言程序翻譯成等價(jià)的0/1代碼指令,而編譯程序就是這種翻譯程序之一,它已成為現(xiàn)代計(jì)算機(jī)系統(tǒng)的基本組成部分?! 【幾g原理與技術(shù)是計(jì)算機(jī)工作者所必備的專業(yè)基礎(chǔ)知識,其內(nèi)容涉及程序設(shè)計(jì)語言、形式語言與自動機(jī)理論、算法分析與設(shè)計(jì)、軟件工程等諸多方面。通過對這些知識的學(xué)習(xí),不僅能掌握基本理論與方法,還將得到分析問題和解決問題的方法與能力的訓(xùn)練,并極大地提高邏輯思維和抽象思維能力?! ”菊聦⒃诨仡櫝绦蛟O(shè)計(jì)語言相關(guān)內(nèi)容的基礎(chǔ)上說明編譯程序與程序設(shè)計(jì)語言之間的關(guān)系,并簡單敘述編譯的過程及編譯程序的結(jié)構(gòu)?! ?/pre>圖書封面
評論、評分、閱讀與下載
- 還沒讀過(75)
- 勉強(qiáng)可看(546)
- 一般般(932)
- 內(nèi)容豐富(3866)
- 強(qiáng)力推薦(317)