編譯原理及實(shí)現(xiàn)

出版時(shí)間:2011-11  出版社:清華大學(xué)出版社  作者:孫悅紅  頁(yè)數(shù):256  

內(nèi)容概要

  本書以通俗易懂的語(yǔ)言介紹編譯原理的理論和常用的方法與技術(shù),并著重介紹各種編譯方法的實(shí)現(xiàn)途徑。全書共分10章,包括形式語(yǔ)言基礎(chǔ)、詞法分析、語(yǔ)法分析、語(yǔ)義分析及代碼生成、符號(hào)表管理、運(yùn)行時(shí)的存儲(chǔ)分配,以及代碼優(yōu)化等??紤]目前學(xué)計(jì)算機(jī)專業(yè)的學(xué)生對(duì)c語(yǔ)言比較了解,本書以c語(yǔ)言為雛形沒(méi)計(jì)了一種test語(yǔ)言,并在介紹全書內(nèi)容時(shí),用test語(yǔ)言進(jìn)行分析與實(shí)現(xiàn),使編譯原理的抽象性通過(guò)test語(yǔ)言編譯器的實(shí)現(xiàn)而具體化,從而使讀者輕松掌握編譯原理。
  本書 理論與實(shí)踐并重,內(nèi)容深入淺出,便于自學(xué)。每章后都提供了適量的習(xí)題。
  本書 可作為高等學(xué)校計(jì)算機(jī)專業(yè)的教材,也可供從事計(jì)算機(jī)應(yīng)用和開(kāi)發(fā)的人員使用。

書籍目錄

第1章 編譯概述
 1.1 程序設(shè)計(jì)語(yǔ)言
 1.2 翻譯程序
 1.3 編譯程序的組成
 1.4 編譯程序的結(jié)構(gòu)
 1.5 編譯程序的前后處理器
 1.6 test語(yǔ)言與編譯器
 習(xí)題
第2章 文法和語(yǔ)言
 2.1 字母表和符號(hào)串
 2.2 文法
 2.3 推導(dǎo)
 2.4 句型和句子
 2.5 語(yǔ)言
 2.6 遞歸規(guī)則與遞歸文法
 2.7 短語(yǔ)、簡(jiǎn)單短語(yǔ)和句柄
 2.8 語(yǔ)法樹(shù)
 2.9 子樹(shù)與短語(yǔ)
 2.10 由樹(shù)構(gòu)造推導(dǎo)過(guò)程
 2.11 文法的二義性
 2.12 有關(guān)文法的實(shí)用限制
 2.13 文法和語(yǔ)言分類
 習(xí)題
第3章 詞法分析
 3.1 詞法分析的功能
 3.2 程序語(yǔ)言的單詞符號(hào)種類及詞法分析輸出
 3.3 正則文法及狀態(tài)圖
 3.4 詞法分析程序的設(shè)計(jì)與實(shí)現(xiàn)
 3.5 正則表達(dá)式
 3.6 有窮自動(dòng)機(jī)
 3.7 詞法分析程序的自動(dòng)生成器lex
 習(xí)題
第4章 語(yǔ)法分析——自頂向下分析
 4.1 自頂向下分析方法
 4.2 first集合和follow集合
 4.3 遞歸下降分析
 4.4 ll(1)分析方法
 習(xí)題
第5章 語(yǔ)法分析——自底向上分析
 5.1 規(guī)范推導(dǎo)、規(guī)范句型和規(guī)范歸約
 5.2 自底向上分析方法的一般過(guò)程
 5.3 lr分析方法
 5.4 lr(0)分析器
 5.5 slr(1)分析器
 5.6 lr(1)分析器
 5.7 lalr(1)分析器
 5.8 語(yǔ)法分析程序的自動(dòng)生成工具——yacc
 習(xí)題
第6章 語(yǔ)法制導(dǎo)翻譯技術(shù)
 6.1 翻譯文法
 6.2 語(yǔ)法制導(dǎo)翻譯
 6.3 自頂向下語(yǔ)法制導(dǎo)翻譯
 6.4 屬性翻譯文法
 6.5 屬性文法的自頂向下翻譯
 6.6 自底向上語(yǔ)法制導(dǎo)翻譯
 習(xí)題
第7章 符號(hào)表管理技術(shù)
 7.1 何時(shí)建立和訪問(wèn)符號(hào)表
 7.2 符號(hào)表的組織和內(nèi)容
 7.3 符號(hào)表上的操作
 7.4 非塊程序結(jié)構(gòu)語(yǔ)言的符號(hào)表結(jié)構(gòu)
 7.5 塊程序結(jié)構(gòu)語(yǔ)言的符號(hào)表組織
 習(xí)題
第8章 程序運(yùn)行時(shí)的存儲(chǔ)組織及管理
 8.1 程序運(yùn)行時(shí)的存儲(chǔ)組織
 8.2 靜態(tài)存儲(chǔ)分配
 8.3 棧式動(dòng)態(tài)存儲(chǔ)分配
 8.4 堆式動(dòng)態(tài)存儲(chǔ)分配
 習(xí)題
第9章 語(yǔ)義分析和代碼生成
 9.1 語(yǔ)義分析的概念
 9.2 中間代碼
 9.3 聲明的處理
 9.4 表達(dá)式語(yǔ)句
 9.5 if語(yǔ)句
 9.6 while語(yǔ)句
 9.7 for循環(huán)語(yǔ)句
 9.8 write_語(yǔ)句
 9.9 read_語(yǔ)句
 9.10 過(guò)程調(diào)用和返回
 9.11 語(yǔ)義分析及代碼生成實(shí)現(xiàn)
 9.12 錯(cuò)誤處理
 習(xí)題
第10章 代碼優(yōu)化
 10.1 局部?jī)?yōu)化
 10.2 循環(huán)內(nèi)的優(yōu)化
 習(xí)題
附錄a test語(yǔ)言文法規(guī)則
 a.1 test語(yǔ)言詞法規(guī)則
 a.2 test的語(yǔ)法規(guī)則
 a.3 test的語(yǔ)義和代碼生成
附錄b 詞法分析程序
 b.1 詞法分析程序
 b.2 主程序
附錄c 語(yǔ)法分析程序
 c.1 語(yǔ)法分析程序
 c.2 主程序
附錄d 語(yǔ)義及代碼生成程序
 d.1 語(yǔ)法、語(yǔ)義及代碼生成程序
 d.2 主程序
附錄 etest抽象機(jī)模擬器完整程序
 e.1 testmachine函數(shù)
 e.2 主程序

章節(jié)摘錄

版權(quán)頁(yè):插圖:處理過(guò)程調(diào)用和返回時(shí),主要涉及下列兩個(gè)基本問(wèn)題:(1)實(shí)現(xiàn)程序中過(guò)程調(diào)用和返回的控制邏輯;(2)處理實(shí)在參數(shù)和形式參數(shù)之間的數(shù)據(jù)傳遞問(wèn)題。在過(guò)程調(diào)用時(shí),要將實(shí)在參數(shù)傳遞給形式參數(shù)。在執(zhí)行過(guò)程或從過(guò)程返回時(shí),要將過(guò)程的處理結(jié)果返回給相應(yīng)的主調(diào)過(guò)程。在過(guò)程調(diào)用時(shí)不同語(yǔ)言、不同性質(zhì)的形式參數(shù)將采用不同的數(shù)據(jù)傳遞方式,而不同的數(shù)據(jù)傳遞方法又將對(duì)過(guò)程和過(guò)程調(diào)用的語(yǔ)義分析和代碼生成產(chǎn)生影響。9.10.1參數(shù)的基本傳遞形式目前,常見(jiàn)的參數(shù)傳遞有值傳遞、引用傳遞(地址傳遞)、值結(jié)果傳遞和名字傳遞。這里,只介紹兩個(gè)最常用的參數(shù)傳遞機(jī)制,即值傳遞和引用傳遞,對(duì)其他兩個(gè)傳遞機(jī)制有興趣的讀者可查閱有關(guān)書籍。1.值傳遞值傳遞又稱為值調(diào)用,它是最簡(jiǎn)單的數(shù)據(jù)傳遞方式。在這種參數(shù)傳遞機(jī)制下,調(diào)用程序段要把實(shí)在參數(shù)的值計(jì)算出來(lái),并存放在操作數(shù)棧、寄存器或被調(diào)過(guò)程能夠取得的數(shù)據(jù)單元中;而在被調(diào)用的子程序或函數(shù)中,首先要將實(shí)在參數(shù)的值送進(jìn)相應(yīng)的形式參數(shù)的數(shù)據(jù)單元中。編譯程序?qū)^(guò)程體中形式參數(shù)的處理就像處理一般實(shí)在參數(shù)標(biāo)識(shí)符那樣,生成目標(biāo)代碼。在這種形式參數(shù)與實(shí)在參數(shù)的結(jié)合方式下,數(shù)據(jù)傳遞是單方向進(jìn)行的,即調(diào)用段將實(shí)在參數(shù)的值傳遞到被調(diào)用段相應(yīng)的形式參數(shù)的數(shù)據(jù)單元中;而在執(zhí)行被調(diào)用段的過(guò)程中,不可能將賦值形參的數(shù)據(jù)單元中的內(nèi)容再傳回調(diào)用段的相應(yīng)實(shí)在參數(shù)單元中去。C語(yǔ)言就采用這種參數(shù)傳遞機(jī)制。2.引用傳遞所謂引用傳遞就是傳遞地址,又叫引用調(diào)用。在這種參數(shù)傳遞機(jī)制下,調(diào)用程序段要將實(shí)在參數(shù)的地址傳遞給相應(yīng)的形式參數(shù)。對(duì)于實(shí)際參數(shù)的各種情況,處理方法如下。(1)若實(shí)在參數(shù)是簡(jiǎn)單變量,則編譯程序要生成將它們的地址保存在操作數(shù)棧、寄存器或某個(gè)被調(diào)過(guò)程能夠取得的數(shù)據(jù)單元的代碼;(2)若實(shí)在參數(shù)是數(shù)組元素,則除上述代碼外,在調(diào)用段中還應(yīng)先有計(jì)算該數(shù)組元素地址的代碼;(3)若實(shí)在參數(shù)是表達(dá)式或常量,則編譯程序應(yīng)先分配一個(gè)臨時(shí)數(shù)據(jù)單元,在調(diào)用程序中先要有計(jì)算表達(dá)式的值送進(jìn)臨時(shí)數(shù)據(jù)單元中的代碼,還要有將該臨時(shí)數(shù)據(jù)單元的地址保存在操作數(shù)棧、寄存器或某個(gè)被調(diào)過(guò)程能夠取得的數(shù)據(jù)單元的目標(biāo)代碼。而在被調(diào)程序段,對(duì)形參的處理方法是:首先將實(shí)在參數(shù)的地址抄進(jìn)自己相應(yīng)的形式參數(shù)的數(shù)據(jù)單元中。過(guò)程體中對(duì)形式參數(shù)的引用或賦值都將被處理成對(duì)形式參數(shù)數(shù)據(jù)單元的間接訪問(wèn)。

編輯推薦

《編譯原理及實(shí)現(xiàn)(第2版)》教材以通俗易懂的語(yǔ)言講解編譯原理,包括詞法分析、語(yǔ)法分析、語(yǔ)義分析及代碼生成、符號(hào)表管理、運(yùn)行時(shí)的存儲(chǔ)分配、代碼優(yōu)化等,并注重介紹各種編譯方法的應(yīng)用實(shí)現(xiàn)。本教材考慮到目前學(xué)計(jì)算機(jī)專業(yè)的學(xué)生對(duì)C語(yǔ)言比較了解,以C語(yǔ)言為雛形設(shè)計(jì)了一種TEST語(yǔ)言,并建立該語(yǔ)言的詞法、語(yǔ)法、語(yǔ)義文法規(guī)則,系統(tǒng)介紹編譯過(guò)程的各個(gè)部分,擺脫了以往編譯教材的抽象以及理論與實(shí)際的脫節(jié),使編譯原理的抽象性通過(guò)TEsT語(yǔ)言的編譯器實(shí)現(xiàn)而具體化,從而使學(xué)習(xí)者輕松掌握編譯原理,目前多數(shù)已出版的編譯原理教材普遍偏重于理論,對(duì)實(shí)現(xiàn)技術(shù)講解的極少或根本沒(méi)有,而且教材內(nèi)容過(guò)多,由于授課時(shí)數(shù)的限制以及學(xué)生接受能力的差異,教科書的內(nèi)容往往不能充分利用,而《編譯原理及實(shí)現(xiàn)(第2版)》以通俗易懂的語(yǔ)言講解編譯原理,注重理論與實(shí)踐相結(jié)合,深入講解如何具體用C語(yǔ)言編程實(shí)現(xiàn)詞法分析、語(yǔ)法分析以及語(yǔ)義分析和代碼生成,從而使學(xué)習(xí)者不再畏懼編譯原理的學(xué)習(xí),提高學(xué)習(xí)并動(dòng)手編寫編譯器的興趣?

圖書封面

評(píng)論、評(píng)分、閱讀與下載


    編譯原理及實(shí)現(xiàn) PDF格式下載


用戶評(píng)論 (總計(jì)9條)

 
 

  •   TEST語(yǔ)言
  •   這本書是我們老師出版的。太帥了!書的質(zhì)量、內(nèi)容都不錯(cuò)。很適合初學(xué)者。從易到難,步步深入。讓我們一起來(lái)學(xué)習(xí)吧!?。?/li>
  •   待使用,還不知道怎么樣
  •   對(duì)學(xué)習(xí)編譯原理有幫助!
  •   和預(yù)期的一樣,能準(zhǔn)時(shí)送達(dá),書比較新,沒(méi)有被被壓壞的跡象
  •   書很好,知識(shí)面很到位
  •   里面有兩頁(yè)很臟啊,被污染的感覺(jué)
  •   學(xué)校的指定教材,質(zhì)量沒(méi)問(wèn)題。
  •   書的質(zhì)量不錯(cuò),謝謝!
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7