幫助中心 | 我的帳號 | 關於我們

編譯原理基礎(第3版高等學校新工科電腦類專業系列教材)

  • 作者:編者:王獻青//張立勇//張淑平//劉堅|責編:高櫻
  • 出版社:西安電子科大
  • ISBN:9787560677378
  • 出版日期:2025/08/01
  • 裝幀:平裝
  • 頁數:371
人民幣:RMB 64 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書系統地介紹了程序設計語言翻譯的基本原理與技術,主要從以下三個方面進行討論。
    一方面介紹語言翻譯的基本原理與方法,主要內容包括編譯器構造的所有重要階段:詞法分析、語法分析、語義分析與中間代碼生成、代碼優化、運行時的存儲分配,以及目標代碼的生成等。
    另一方面討論編譯器構造和程序分析技術中需要重點關注的原理和方法,主要包括語法制導翻譯與屬性計算、類型與類型檢查、數據流分析等。
    再一方面探討構造編譯器的一些技術,主要包括手工編寫詞法/語法分析器的相關方法、自動生成工具LEX/YACC的工作原理與使用方法,以及配合教學的編譯器前端AMCC。
    本書既可作為高等院校電腦相關專業或非電腦專業本科生、研究生的教材,也可作為軟體技術人員和程序設計語言愛好者的參考書。

作者介紹
編者:王獻青//張立勇//張淑平//劉堅|責編:高櫻

目錄
第1章  引言
  1.1  從面向機器的語言到面向人類的語言
  1.2  語言之間的翻譯
  1.3  編譯器與解釋器
  1.4  編譯器的工作原理與基本組成
    1.4.1  通用程序設計語言的主要成分
    1.4.2  以階段劃分編譯器
    1.4.3  編譯器各階段的工作
    1.4.4  編譯器的分析/綜合模式
    1.4.5  編譯器掃描的遍數
  1.5  編譯器的編寫
  1.6  本章小結
  習題
第2章  詞法分析
  2.1  詞法分析中的若干問題
    2.1.1  記號、模式與單詞
    2.1.2  記號的屬性
    2.1.3  詞法分析器的作用
    2.1.4  詞法分析器的工作方式
  2.2  模式的形式化描述
    2.2.1  字元串與語言
    2.2.2  正規式與正規集
    2.2.3  記號的說明
  2.3  記號的識別——有限自動機
    2.3.1  不確定的有限自動機
    2.3.2  確定的有限自動機
    2.3.3  有限自動機的等價
  2.4  從正規式到DFA
    2.4.1  從正規式到NFA
    2.4.2  從NFA到DFA
    2.4.3  最小化DFA
    2.4.4  * DFA的「短路」計算
  2.5  詞法分析器的實現
    2.5.1  輸入緩衝區
    2.5.2  將DFA用作識別器
    2.5.3  表驅動的識別器
    2.5.4  直接編碼的識別器
    2.5.5  手工編碼的識別器
    2.5.6  處理關鍵字
  2.6  本章小結
  習題
第3章  語法分析
  3.1  語法分析的若干問題
    3.1.1  語法分析器的作用
    3.1.2  語法錯誤的處理原則
  3.2  上下文無關文法
    3.2.1  上下文無關文法的定義與表示
    3.2.2  CFG產生語言的基本方法——推導
    3.2.3  推導、分析樹與語法樹
    3.2.4  二義性與二義性的消除

  3.3  語言與文法簡介
    3.3.1  正規式與上下文無關文法
    3.3.2  上下文有關文法
    3.3.3  形式語言與自動機簡介
  3.4  自上而下語法分析
    3.4.1  自上而下分析的一般方法
    3.4.2  消除左遞歸
    3.4.3  提取左因子
    3.4.4  FIRST和FOLLOW集合
    3.4.5  遞歸下降的預測分析
    3.4.6  非遞歸的預測分析
  3.5  自下而上語法分析
    3.5.1  自下而上分析的基本方法
    3.5.2  LR分析
  3.6  * LR(1)與LALR(1)分析
    3.6.1  SLR(1)分析器的弱點
    3.6.2  LR(1)分析器
    3.6.3  LALR(1)分析器
    3.6.4  LR(1)與LALR(1)的關係
    3.6.5  LR(1)與二義文法的關係
  3.7  * 編譯器構造工具
    3.7.1  詞法分析器生成器LEX
    3.7.2  語法分析器生成器YACC
    3.7.3  語言識別器生成器簡述
  3.8  本章小結
  習題
第4章  靜態語義分析
  4.1  語法制導翻譯簡介
    4.1.1  語法與語義
    4.1.2  屬性與語義規則
    4.1.3  語義規則的兩種形式
    4.1.4  LR分析翻譯方案的設計
    4.1.5  遞歸下降分析翻譯方案的設計
  4.2  * 屬性的計算
    4.2.1  綜合屬性與自下而上分析
    4.2.2  繼承屬性與自上而下分析
    4.2.3  依賴圖與屬性計算
    4.2.4  L_屬性的增量分析
    4.2.5  L_屬性的自下而上計算
    4.2.6  屬性的空間分配
    4.2.7  YACC源程序中的語法制導翻譯
  4.3  中間代碼簡介
    4.3.1  后綴式
    4.3.2  三地址碼
    4.3.3  圖形中間代碼
  4.4  符號表簡介
    4.4.1  符號表條目
    4.4.2  名字的存儲
    4.4.3  名字的作用域
    4.4.4  線性表

    4.4.5  散列表
  4.5  聲明語句的翻譯
    4.5.1  變數的聲明
    4.5.2  * 數組變數的聲明
    4.5.3  過程的定義與聲明
    4.5.4  記錄的域名
  4.6  簡單算術表達式與賦值句
  4.7  數組元素的引用
    4.7.1  數組元素的地址計算
    4.7.2  數組元素引用的語法制導翻譯
  4.8  布爾表達式
    4.8.1  布爾表達式的作用與結構
    4.8.2  布爾表達式的計算方法
    4.8.3  直接計算的語法制導翻譯
    4.8.4  短路計算的語法制導翻譯
    4.8.5  拉鏈與回填
  4.9  控制語句
    4.9.1  標號與無條件轉移
    4.9.2  條件轉移
  4.10  過程調用
  4.11  * 類型檢查
    4.11.1  類型與類型檢查
    4.11.2  類型系統
    4.11.3  簡單的類型檢查
    4.11.4  類型表達式的等價
    4.11.5  多態函數的類型檢查
    4.11.6  特定多態的類型檢查
  4.12  本章小結
  習題
第5章  運行環境
  5.1  過程的動態特性
    5.1.1  過程與活動
    5.1.2  控制棧與活動記錄
    5.1.3  名字的綁定
  5.2  運行時數據空間的組織
    5.2.1  運行時內存的劃分與數據空間的存儲分配策略
    5.2.2  靜態與動態分配簡介
  5.3  棧式動態分配
    5.3.1  控制棧中的活動記錄
    5.3.2  調用序列與返回序列
    5.3.3  棧式分配中對非本地名字的訪問
    5.3.4  參數傳遞的實現
  5.4  本章小結
  習題
第6章  代碼生成
  6.1  代碼生成的相關問題
  6.2  簡單的電腦模型
  6.3  簡單的代碼生成器
    6.3.1  基本塊、流圖與循環
    6.3.2  下次引用信息與活躍信息

    6.3.3  簡單的代碼生成
  6.4  本章小結
  習題
第7章  代碼優化
  7.1  局部優化
    7.1.1  基本塊的優化
    7.1.2  窺孔優化
    7.1.3  表達式的優化代碼生成
  7.2  獨立於機器的全局優化
    7.2.1  運行實例:快排序
    7.2.2  全局公共子表達式
    7.2.3  複寫傳播(Copy Propagation)
    7.2.4  死代碼消除(Dead-Code Elimination)
    7.2.5  代碼外提(Code Motion)
    7.2.6  歸納變數與強度削弱
  7.3  * 數據流分析簡介
    7.3.1  數據流抽取
    7.3.2  數據流分析模式
    7.3.3  基本塊上的數據流模式
    7.3.4  到達定值(Reaching Definitions)
    7.3.5  活躍變數(Live Variable)
    7.3.6  可用表達式(Available Expression)
    7.3.7  小結
  7.4  本章小結
  習題
附錄A  一個示例性編譯器前端
  A.1  AMC語言
    A.1.1  文法書寫形式約定
    A.1.2  翻譯單元與聲明
    A.1.3  語句
    A.1.4  表達式
    A.1.5  詞法規則
  A.2  AMCC的構成與頂層流程
    A.2.1  AMCC的編程思想
    A.2.2  AMCC的組件構成
    A.2.3  驅動器與頂層流程
    A.2.4  模塊劃分與目錄結構
  A.3  詞法分析模塊
    A.3.1  詞法分析模塊的構成
    A.3.2  記號與記號池
    A.3.3  詞法分析的高層流程
    A.3.4  識別記號的核心實現
  A.4  語法分析模塊
    A.4.1  語法分析模塊的構成
    A.4.2  遞歸下降函數的構造方法
    A.4.3  語法分析的高層流程
    A.4.4  分析樹的結構
    A.4.5  分析樹的遍歷框架
  A.5  符號表構建模塊
    A.5.1  作用域相關規則

    A.5.2  符號表構建模塊的任務
    A.5.3  符號表構建模塊的構成
    A.5.4  構建符號表的過程說明
  A.6  中間代碼生成模塊
    A.6.1  中間代碼生成模塊的任務
    A.6.2  中間代碼生成模塊的構成
    A.6.3  中間代碼生成的過程說明
  A.7  錯誤處理與恢復
    A.7.1  詞法分析的錯誤恢復策略
    A.7.2  語法分析的錯誤恢復
    A.7.3  語義分析過程中的錯誤恢復
  A.8  附錄A小結
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032