出版時(shí)間:2011-3 出版社:電子工業(yè) 作者:劉銘//徐蘭芳//駱婷 頁(yè)數(shù):254
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書(shū)根據(jù)高等學(xué)?!熬幾g原理”課程教學(xué)基本要求編寫(xiě)。全書(shū)系統(tǒng)介紹了編譯程序的一般構(gòu)造原理、基本設(shè)計(jì)方法和主要實(shí)現(xiàn)技術(shù)。內(nèi)容包括:文法和語(yǔ)言基本知識(shí)、詞法分析程序的設(shè)計(jì)原理與構(gòu)造方法、各種語(yǔ)法分析技術(shù)、語(yǔ)法制導(dǎo)翻譯技術(shù)與中間代碼生成、符號(hào)表的組織和管理、代碼優(yōu)化、運(yùn)行時(shí)存儲(chǔ)空間的組織與管理、目標(biāo)代碼生成、并行編譯技術(shù)基本常識(shí)等。
本書(shū)系統(tǒng)性強(qiáng),概念清晰,內(nèi)容簡(jiǎn)明通俗,每章配有本章學(xué)習(xí)導(dǎo)讀、本章小結(jié)、自測(cè)練習(xí)題和習(xí)題。附錄給出了自測(cè)練習(xí)題與習(xí)題參考答案及編譯程序?qū)嶒?yàn),本書(shū)還免費(fèi)提供電子課件和實(shí)驗(yàn)源代碼。
讀者對(duì)象:本書(shū)可作為高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)本科生教材,也可作為成人教育本科和專(zhuān)升本學(xué)生的教材,對(duì)相關(guān)工程技術(shù)人員也有參考價(jià)值。
書(shū)籍目錄
第1章 編譯概述
1.1 翻譯程序與編譯程序
1.2 編譯過(guò)程和編譯程序的基本結(jié)構(gòu)
1.3 編譯程序的生成方法
1.4 編譯技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用
本章小結(jié)
擴(kuò)展閱讀
自測(cè)練習(xí)題1
習(xí)題1
第2章 文法和語(yǔ)言的基本知識(shí)
2.1 概述
2.2 字母表和符號(hào)串的基本概念
2.2.1 字母表和符號(hào)串
2.2.2 符號(hào)串的運(yùn)算
2.3 文法和語(yǔ)言的形式定義
2.3.1 形式語(yǔ)言
2.3.2 文法的形式定義
2.3.3 語(yǔ)言的形式定義
2.3.4 規(guī)范推導(dǎo)和規(guī)范歸約
2.3.5 遞歸規(guī)則與文法的遞歸性
2.4 短語(yǔ)、直接短語(yǔ)和句柄
2.4.1 短語(yǔ)和直接短語(yǔ)
2.4.2 句柄
2.5 語(yǔ)法樹(shù)與文法的二義性
2.5.1 推導(dǎo)和語(yǔ)法樹(shù)
2.5.2 文法的二義性
2.5.3 文法二義性的消除
2.6 文法和語(yǔ)言的分類(lèi)
2.7 有關(guān)文法的實(shí)用限制和變換
本章小結(jié)
擴(kuò)展閱讀
自測(cè)練習(xí)題2
習(xí)題2
第3章 詞法分析與有窮自動(dòng)機(jī)
3.1 詞法分析程序的功能
3.2 單詞符號(hào)及輸出單詞的形式
3.2.1 語(yǔ)言的單詞符號(hào)
3.2.2 詞法分析程序輸出單詞的形式
3.3 語(yǔ)言單詞符號(hào)的兩種定義方式
3.3.1 正規(guī)式與正規(guī)集
3.3.2 正規(guī)文法與正規(guī)式
3.4 正規(guī)式與有窮自動(dòng)機(jī)
3.4.1 確定有窮自動(dòng)機(jī)(DFA)
3.4.2 非確定有窮自動(dòng)機(jī)(NFA)
3.4.3 由正規(guī)表達(dá)式R構(gòu)造NFA
3.4.4 NFA確定化為DFA的方法
3.4.5 DFA的化簡(jiǎn)
3.4.6 有窮自動(dòng)機(jī)到正規(guī)式的轉(zhuǎn)換
3.5 正規(guī)文法與有窮自動(dòng)機(jī)
3.5.1 右線性正規(guī)文法到有窮自動(dòng)機(jī)的轉(zhuǎn)換方法
3.5.2 左線性正規(guī)文法到有窮自動(dòng)機(jī)的轉(zhuǎn)換方法
3.5.3 有窮自動(dòng)機(jī)到正規(guī)文法的轉(zhuǎn)換方法
3.6 詞法分析程序的編寫(xiě)方法
本章小結(jié)
擴(kuò)展閱讀
自測(cè)練習(xí)題3
習(xí)題3
第4章 語(yǔ)法分析
4.1 語(yǔ)法分析程序的功能
4.2 自上而下分析法
4.2.1 非確定的自上而下分析法的思想
4.2.2 文法的左遞歸性和回溯的消除
4.2.3 某些非LL(1)文法到LL(1)文法的改寫(xiě)
4.2.4 遞歸下降分析法
4.2.5 預(yù)測(cè)分析法與預(yù)測(cè)分析表的構(gòu)造
4.3 自下而上分析法的一般原理
4.4 算符優(yōu)先分析法
4.4.1 方法概述
4.4.2 算符優(yōu)先文法的定義
4.4.3 算符優(yōu)先關(guān)系表的構(gòu)造
4.4.4 算符優(yōu)先分析算法的設(shè)計(jì)
4.4.5 優(yōu)先函數(shù)的構(gòu)造
4.4.6 算符優(yōu)先分析法的局限性
4.5 LR分析法
4.5.1 LR分析器的工作原理和過(guò)程
4.5.2 LR(0)分析法
4.5.3 SLR(1)分析法
4.5.4 LR(1)分析法
4.5.5 LALR(1)分析法
4.5.6 LR分析法對(duì)二義性文法的應(yīng)用
4.5.7 LR語(yǔ)法分析中的錯(cuò)誤恢復(fù)技術(shù)
本章小結(jié)
擴(kuò)展閱讀
自測(cè)練習(xí)題4
習(xí)題4
第5章 語(yǔ)法制導(dǎo)翻譯技術(shù)和中間代碼生成
第6章 符號(hào)表的組織與管理
第7章 代碼優(yōu)化
第8章 運(yùn)行時(shí)的存儲(chǔ)組織與管理
第9章 目標(biāo)代碼生成
第10章 并行編譯技術(shù)基本常識(shí)
附錄A 詞法分析程序生成器
附錄B 語(yǔ)法分析程序生成器YACC
附錄C 編譯程序?qū)嶒?yàn)
附錄D 自測(cè)練習(xí)題與習(xí)題參考答案
參考文獻(xiàn)
章節(jié)摘錄
編譯程序的重要功能之一,是記錄源程序中所使用的變量的名字,并且收集與名字屬性相關(guān)的各種信息。名字屬性包括一個(gè)名字的存儲(chǔ)分配、類(lèi)型、作用域等信息。如果名字是一個(gè)函數(shù)名,還會(huì)包括其參數(shù)數(shù)量、類(lèi)型、參數(shù)的傳遞方式以及返回類(lèi)型等信息。符號(hào)表數(shù)據(jù)結(jié)構(gòu)可以為變量名字創(chuàng)建記錄條目,來(lái)登記源程序中所提供的或在編譯過(guò)程中所產(chǎn)生的這些信息,編譯程序在工作過(guò)程的各個(gè)階段需要構(gòu)造、查找、修改或存取有關(guān)表格中的信息,因此在編譯程序中必須有一組管理各種表格的程序?! ∪绻幾g程序只處理正確的程序,那么它的設(shè)計(jì)和實(shí)現(xiàn)將會(huì)大大簡(jiǎn)化。但是程序設(shè)計(jì)人員還期望編譯程序能夠幫助定位和跟蹤錯(cuò)誤。無(wú)論程序員如何努力,程序中難免總會(huì)有錯(cuò)誤出現(xiàn)。雖然錯(cuò)誤很常見(jiàn),但很少有語(yǔ)言在設(shè)計(jì)的時(shí)候就考慮到錯(cuò)誤處理問(wèn)題。大部分程序設(shè)計(jì)語(yǔ)言的規(guī)范沒(méi)有規(guī)定編譯程序應(yīng)該如何處理錯(cuò)誤;錯(cuò)誤處理方法由編譯程序的設(shè)計(jì)者決定。因此,從一開(kāi)始就計(jì)劃好如何進(jìn)行錯(cuò)誤處理,不僅可以簡(jiǎn)化編譯程序的結(jié)構(gòu),還可以改進(jìn)錯(cuò)誤處理方法。一個(gè)好的編譯程序在編譯過(guò)程中,應(yīng)具有廣泛的程序查錯(cuò)能力,并能準(zhǔn)確地報(bào)告錯(cuò)誤的種類(lèi)及出錯(cuò)位置,以便用戶查找和糾正,因此在編譯程序中還必須有一個(gè)出錯(cuò)處理程序?! 【幾g過(guò)程的這5個(gè)階段的任務(wù)分別由5個(gè)程序完成,這5個(gè)程序分別稱為詞法分析程序、語(yǔ)法分析程序、語(yǔ)義分析及中間代碼生成程序、代碼優(yōu)化程序和目標(biāo)代碼生成程序,另外再加上表格管理程序和出錯(cuò)處理程序。這些程序便是編譯程序的主要組成部分,一個(gè)典型的編譯程序結(jié)構(gòu)如圖1.5所示?! ⌒枰⒁獾氖牵瑘D中所給出的各個(gè)階段之間的關(guān)系是指它們之間的邏輯關(guān)系,不一定是執(zhí)行時(shí)間上的先后關(guān)系。實(shí)際上,可按不同的執(zhí)行流程來(lái)組織上述各階段的工作,這在很大程度上依賴于編譯過(guò)程中對(duì)源程序掃描的遍數(shù)以及如何劃分各遍掃描所進(jìn)行的工作。此處所說(shuō)的“遍”,是指對(duì)源程序或其等價(jià)的中間語(yǔ)言程序從頭到尾掃描一遍,并完成規(guī)定加工處理工作的過(guò)程。例如,可以將前述5個(gè)階段的工作結(jié)合在一起,對(duì)源程序從頭到尾掃描一遍來(lái)完成編譯的各項(xiàng)工作,這種編譯程序稱為一遍掃描的編譯程序。 ……
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版