編譯技術 高等教育规划教材:编译技术

周爾強, 陳文宇

  • 出版商: 機械工業
  • 出版日期: 2015-09-10
  • 定價: $234
  • 售價: 8.5$199
  • 語言: 簡體中文
  • 頁數: 224
  • 裝訂: 平裝
  • ISBN: 7111509110
  • ISBN-13: 9787111509110
  • 相關分類: Compiler
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

<內容簡介>

周爾強、周帆、韓蒙、陳文宇編寫的《編譯技術(高等教育規劃教材)》主要內容編排如下:第1章介紹編譯器整體結構;第2章介紹一個簡單的編譯程序構造過程;第3章至第6章分別介紹詞法分析、語法解析、語義分析、代碼生成等過程中所面臨的技術問題及解決方案;第7章介紹運行時存儲空間的組織與分配;第8章介紹LCC(Learning Compiler with C)語言編譯程序的C語言實現。本書在強調基礎理論的同時,力求反映編譯技術方面的最新成果,書中給出了大量代碼,以幫助讀者掌握編譯器構造的相關技術。
本書文字簡潔易懂,內容循序漸進、深入淺出,便於自學,適合作為高等學校電腦類專業的教材,也可作為軟件工程技術人員的參考書。

 

<章節目錄>

出版說明
前言
第1章 編譯概述
  1.1 編譯器與解釋器
  1.2 編譯器的組織與結構
    1.2.1 詞法分析
    1.2.2 語法分析
    1.2.3 語義分析
    1.2.4 代碼生成與優化
    1.2.5 符號表管理及錯誤處理
  1.3 總結與展望
  1.4 習題
第2章 實現一個簡單編譯器
  2.1 語言定義
    2.1.1 詞法定義
    2.1.2 語法定義
  2.2 簡單編譯器的結構
  2.3 詞法分析
  2.4 遞歸下降語法解析
    2.4.1 規則的程序實現
    2.4.2 預測所選的規則
  2.5 抽象語法樹
  2.6 語義分析
    2.6.1 符號表
    2.6.2 類型檢查與轉換
  2.7 中間代碼生成
    2.7.1 三地址代碼
    2.7.2 樹的遍歷與代碼生成
  2.8 習題
第3章 詞法分析器
  3.1 詞法分析器概述
  3.2 單詞的識別
  3.3 狀態轉換圖
  3.4 正則表達式
    3.4.1 字母表的概念
    3.4.2 正則表達式的形式化定義
  3.5 有限狀態自動機與詞法分析器
    3.5.1 確定的有限狀態自動機
    3.5.2 正則表達式到有限狀態自動機的轉換
    3.5.3 詞法分析器的自動機實現
  3.6 詞法分析器的自動生成
    3.6.1 Lex中的單詞符號定義
    3.6.2 Lex中的字符處理
    3.6.3 其他工具簡介
  3.7 習題
第4章 文法與語法解析
  4.1 文法和語法的定義
    4.1.1 文法的定義
    4.1.2 上下文無關文法
    4.1.3 推導與規約

    4.1.4 語法樹
  4.2 自上而下的語法分析
    4.2.1 左遞歸的消除
    4.2.2 提取公共左因子
    4.2.3 遞歸下降分析法
    4.2.4 表驅動的預測分析法
  4.3 自下而上的語法分析
    4.3.1 LR分析過程
    4.3.2 LR(0)分析表的構造
    4.3.3 SLR(1)分析表的構造
  4.4 語法解析相關工具
    4.4.1 YACC
    4.4.2 ANTLR
  4.5 習題
第5章 語義分析
  5.1 語義分析概況
    5.1.1 語義分析的功能
    5.1.2 語義分析方法
  5.2 構建抽象語法樹
    5.2.1 單一類型語法樹的設計
    5.2.2 多類型語法樹的設計
    5.2.3 多類型語法樹的遍歷
  5.3 符號表
    5.3.1 符號表的數據結構
    5.3.2 哈希符號表的實現
    5.3.3 分程序結構的作用域
    5.3.4 分程序結構符號表的實現
  5.4 說明語句分析
    5.4.1 簡單變量聲明
    5.4.2 結構類型的聲明
  5.5 賦值語句分析
  5.6 控制語句分析
    5.6.1 if語句
    5.6.2 while語句
    5.6.3 for語句
    5.6.4 過程調用語句
  5.7 習題
第6章 LLVM代碼生成與優化
  6.1 LLVM系統
    6.1.1 LLVM框架設計理念
    6.1.2 LLVM中間代碼表示
    6.1.3 LLVM代碼示例分析
    6.1.4 LLVM工具集
  6.2 LLVM代碼生成
    6.2.1 常量、局部變量的代碼生成
    6.2.2 表達式的代碼生成
    6.2.3 函數聲明與調用
  6.3 優化概述
  6.4 基本塊與流圖
    6.4.1 基本塊

    6.4.2 程序流圖
  6.5 基本塊內的優化
  6.6 循環優化
    6.6.1 必經結點
    6.6.2 回邊及循環的查找
    6.6.3 循環的優化
  6.7 習題
第7章 運行時存儲空間的組織與分配
  7.1 存儲組織
    7.1.1 運行時內存的劃分
    7.1.2 活動記錄
    7.1.3 存儲分配策略
    7.1.4 變量的存儲分配
  7.2 棧式分配
    7.2.1 只含半靜態變量的棧式分配
    7.2.2 半動態變量的棧式分配
  7.3 嵌套子程序的存儲組織
  7.4 參數傳遞方式
    7.4.1 參數傳遞的語義模型
    7.4.2 參數傳遞的實現模型
  7.5 習題
第8章 LCC語言編譯程序的實現
  8.1 LCC語言簡介
  8.2 詞法分析
  8.3 語法分析
    8.3.1 LCC語言文法說明
    8.3.2 YACC與Lex之間的約定
    8.3.3 抽象語法樹結點設計
    8.3.4 構建抽象語法樹
    8.3.5 文法動作說明
  8.4 語義分析
    8.4.1 符號表的實現
    8.4.2 語義檢查
    8.4.3 數組設計與檢查
  8.5 中間代碼生成
    8.5.1 LLVM代碼生成接口
    8.5.2 LCC語言的代碼生成框架
    8.5.3 表達式的代碼生成
    8.5.4 輸入輸出語句的代碼生成
  8.6 LCC語言代碼運行測試
    8.6.1 變量作用域測試
    8.6.2 控制語句測試
    8.6.3 整型數組測試
    8.6.4 字符串數組測試
  8.7 習題
附錄縮略語
參考文獻