發表於2024-11-07
書[0名0]: | 編譯原理(原書[0第0]2版)(龍書)(09年度[0暢0]銷榜TOP50)|39915 |
圖書定價: | 89元 |
圖書作者: | (美)Alfred V.Aho;Monica S.Lam;Ravi Sethi;Jeffrey D.Ullman |
齣版社: | 機械工業齣版社 |
齣版日期: | 2009/1/1 0:00:00 |
ISBN號: | 9787111251217 |
開本: | 16開 |
頁數: | 631 |
版次: | 2-1 |
作者簡介 |
Alfred V.Aho,美[0國0]歌倫比亞[0大0][0學0]教授,美[0國0][0國0]傢工程院院士,ACM和IEEE[0會0]士,曾獲得IEEE的馮·諾伊曼奬。著有多部算[0法0]、數據結構、編譯器、數據庫係統及計算機科[0學0]基礎方麵的著作。 |
內容簡介 |
《編譯原理》全麵、深入地探討瞭編譯器設計方麵的重要主題,包括詞[0法0]分析、語[0法0]分析、語[0法0]製導定義和語[0法0]製導翻譯、運行時刻環境、目標代碼生成、代碼[0優0]化技術、並行性檢測以及過程間分析技術,並在相關章節中給齣[0大0]量的實例。與上一版相比,《編譯原理》進行瞭全麵修訂,涵蓋瞭編譯器開發方麵新進展。每章中都提供瞭[0大0]量的實例及參考文獻。 《編譯原理》是編譯原理課程方麵的經典教材,內容豐富,適閤作為高等院校計算機及相關專業本科生及研究生的編譯原理課程的教材,也是廣[0大0]技術人員的參考讀物。 |
目錄 |
齣版者的話 譯者序 前言 [0第0]1章引論 1.1 語言處理器 1.2 一個編譯器的結構 1.2.1 詞[0法0]分析 1.2.2 語[0法0]分析 1.2.3 語義分析 1.2.4 中間代碼生成 1.2.5 代碼[0優0]化 1.2.6 代碼生成 1.2.7 符號錶管理 1.2.8 將多個步驟組閤成趟 1.2.9 編譯器構造工具 1.3 程序設計語言的發展曆程 1.3.1 走嚮高級程序設計語言 1.3.2 對編譯器的影響 1.3.3 1.3節的練習 1.4 構建一個編譯器的相關科[0學0] 1.4.1 編譯器設計和實現中的建模 1.4.2 代碼[0優0]化的科[0學0] 1.5 編譯技術的應用 1.5.1 高級程序設計語言的實現 1.5.2 針對計算機體係結構的[0優0]化 1.5.3 新計算機體係結構的設計 1.5.4 程序翻譯 1.5.5 軟件生産率工具 1.6 程序設計語言基礎 1.6.1 靜態和動態的區彆 1.6.2 環境與狀態 1.6.3 靜態作用域和塊結構 1.6.4 顯式訪問控製 1.6.5 動態作用域 1.6.6 參數傳遞機製 1.6.7 彆[0名0] 1.6.8 1.6節的練習 1.7 [0第0]1章的總結 1.8 [0第0]1章的參考書目 [0第0]2章 一個簡單的語[0法0]製導翻譯器 2.1 引言 2.2 語[0法0]定義 2.2.1 文[0法0]定義 2.2.2 推導 2.2.3 語[0法0]分析樹 2.2.4 二義性 2.2.5 運算符的結閤性 2.2.6 運算符的[0優0]先級 2.2.7 2.2節的練習 2.3 語[0法0]製導翻譯 2.3.1 後綴錶示 2.3.2 綜閤屬性 2.3.3 簡單語[0法0]製導定義 2.3.4 樹的遍曆 2.3.5 翻譯方案 2.3.6 2.3節的練習 2.4 語[0法0]分析 2.4.1 自[0頂0]嚮下分析方[0法0] 2.4.2 預測分析[0法0] 2.4.3 何時使用産生式 2.4.4 設計一個預測語[0法0]分析器 2.4.5 左遞歸 2.4.6 2.4節的練習 2.5 簡單錶達式的翻譯器 2.5.1抽象語[0法0]和具體語[0法0] 2.5.2調整翻譯方案 2.5.3非終結符號的過程 2.5.4 翻譯器的簡化 2.5.5 完整的程序 2.6 詞[0法0]分析 2.6.1 剔除空白和注釋 2.6.2 預讀 2.6.3 常量 2.6.4 識彆關鍵字和標識符 2.6.5 詞[0法0]分析器 2.6.6 2.6節的練習 2.7 符號錶 2.7.1 為每個作用域設置一個符號錶 2.7.2 符號錶的使用 2.8 中間代碼生成 2.8.1 兩種中間錶示形式 2.8.2 語[0法0]樹的構造 2.8.4 三地址碼 2.8.5 2.8節的練習 2.9 [0第0]2章的總結 [0第0]3章 詞[0法0]分析 3.1 詞[0法0]分析器的作用 3.1.1 詞[0法0]分析及解析 3.1.2 詞[0法0]單元、模式、詞素 3.1.3 詞[0法0]單元的屬性 3.1.4 詞[0法0]錯誤 3.1.5 3.1節的練習 3.2 輸入緩衝 3.2.1 緩衝區對 3.2.2 哨兵標記 3.3 詞[0法0]單元的規約 3.3.1 串和語言 3.3.2 語言上的運算 3.3.3 正則錶達式 3.3.4 正則定義 3.3.5 正則錶達式的擴展 3.3.6 3.3節的練習 3.4 詞[0法0]單元的識彆 3.4.1 狀態轉換圖 3.4.2 保留字和標識符的識彆 3.4.3 完成我們的連續性例子 3.4.4 基於狀態轉換圖的詞[0法0]分析器的體係結構 3.4.5 3.4節的練習 3.5 詞[0法0]分析器生成工具Lex 3.5.1 Lex的使用 3.5.2 Lex程序的結構 3.5.3 Lex中的衝突解決 3.5.4 嚮前看運算符 3.5.5 3.5節練習 3.6 有窮自動機 3.6.1 不確定的有窮自動機 3.6.2 轉換錶 3.6.3 NFA接受輸入字符串 3.6.4 確定的有窮自動機 3.6.5 3.6節的練習 3.7 從正則錶達式到自動機 3.7.1 從NFA到DFA的轉換 3.7.2 NFA的模擬 3.7.3 NFA模擬效率 3.7.4 從正則錶達式構造NFA 3.7.5 字符串處理算[0法0]的效率 3.7.6 3.7節的練習 3.8 詞[0法0]分析器生成工具的設計 3.8.1 被生成的詞[0法0]分析器的結構 3.8.2 基於NFA的模式匹配 3.8.3 詞[0法0]分析器使用的DFA 3.8.4 實現嚮前看運算符 3.8.5 3.8的練習 3.9 基於DFA的模式匹配器的[0優0]化 3.9.1 NFA的重要狀態 3.9.2 根據抽象語[0法0]樹計算得到的函數 3.9.3 計算nullable、first [p1o1s] 及last [p1o1s] 3.9.4 計算follow [p1o1s] 3.9.5 根據正則錶達式構建DFA 3.9.6 小化一個DFA的狀態數 3.9.7 詞[0法0]分析器的狀態小化 3.9.8 在DFA模擬中用時間換取空間 3.9.9 3.9節的練習 3.9.10 [0第0]3章的總結 3.11 [0第0]3章參考文獻 [0第0]4章 語[0法0]分析 4.1 引論 4.1.1 語[0法0]分析器的角色 4.1.2 代錶性的文[0法0] 4.1.3 語[0法0]錯誤的處理 4.1.4 錯誤恢復策略 4.2 上下文無關文[0法0] 4.2.1 上下文無關文[0法0]的正式定義 4.2.2 符號錶示的慣例 4.2.3 推導 4.2.4 語[0法0]分析樹和推導 4.2.5 二義性 4.2.6 驗證文[0法0]生成的語言 4.2.7上下文無關文[0法0]和正則錶達式 4.2.8 4.2節的練習 4.3 設計文[0法0] 4.3.1 詞[0法0]分析和語[0法0]分析 4.3.2 消除二義性 4.3.3 左遞歸的消除 4.3.4 提取左公因子 4.3.5 非上下文無關的語言構造 4.3.6 4.3節的練習 4.4 自[0頂0]嚮下的語[0法0]分析 4.4.1 遞歸下降的語[0法0]分析 4.4.2 FIRST和FOLLOW 4.4.3 LL(1)文[0法0] 4.4.4 非遞歸的預測分析 4.4.5 預測分析中的錯誤恢復 4.4.6 4.4節的練習 4.5 自底嚮上的語[0法0]分析 4.5.1 歸約 4.5.2 句柄剪枝 4.5.3 移入-歸約語[0法0]分析技術 4.5.4 移入-歸約語[0法0]分析中的衝突 4.5.5 4.5節的練習 4.6 LR語[0法0]分析技術介紹:簡單LR技術 4.6.1 為什麼使用LR語[0法0]分析器? 4.6.2 項和LR(0)自動機 4.6.3 LR-語[0法0]分析算[0法0] 4.6.4 構造SLR-分析錶 4.6.5 可行前綴 4.6.6 4.6節的練習 4.7 更強[0大0]的LR語[0法0]分析器 4.7.1 規範LR(1)項 4.7.2 構造LR(1)項集 4.7.3 規範LR(1)分析錶 4.7.4 構造LALR語[0法0]分析錶 4.7.5 LALR語[0法0]分析錶的高效構造方[0法0] 4.7.6 LR語[0法0]分析錶的壓縮 4.7.7 4.7節的練習 4.8 使用二義性文[0法0] 4.8.1 用[0優0]先級和結閤性解決衝突 4.8.2 “懸空-else”二義性 4.8.3 LR語[0法0]分析中的錯誤恢復 4.8.4 4.8節的練習 4.9 語[0法0]分析器的生成工具 4.9.1 語[0法0]分析器的生成工具Yacc 4.9.2 使用Yacc處理二義性文[0法0] 4.9.3 用Lex創建Yacc的詞[0法0]分析器 4.9.4 Yacc中的錯誤恢復 4.9.5 4.9節的練習 4.10:[0第0]4章的小結 4.11 [0第0]4章的參考文獻 [0第0]5章 語[0法0]製導的翻譯 5.1 語[0法0]製導定義 5.1.1 繼承屬性和綜閤屬性 5.1.2 在一棵語[0法0]分析樹的結點上對一個SDD求值 5.1.3 5.1節的練習 5.2 SDD的求值順序 5.2.1 依賴圖 5.2.2 屬性求值的順序 5.2.3 S-屬性定義 5.2.4 L-屬性定義 5.2.5 具有受控副作用的語義規則 5.2.6 5.2節的練習 5.3 語[0法0]製導翻譯的應用 5.3.1 抽象語[0法0]樹的構造 5.3.2 類型的結構 5.3.3 5.3節的練習 5.4 語[0法0]製導的翻譯方案 5.4.1 後綴翻譯方案 5.4.2 後綴SDT的語[0法0]分析棧實現 5.4.3 産生式內部帶有語義動作的SDT 5.4.4 從SDT中消除左遞歸 5.4.5 L-屬性定義的SDT 5.4.6 5.4節的練習 5.5 實現L-屬性的SDD 5.5.1 在遞歸下降語[0法0]分析過程中進行翻譯 5.5.2 邊掃描邊生成代碼 5.5.3 L-屬性的SDD和LL語[0法0]分析 5.5.4 L-屬性的SDD的自底嚮上語[0法0]分析 5.5.5 5.5節的練習 5.6 [0第0]5章的總結 5.7 [0第0]5章的參考文獻 [0第0]6章 中間代碼生成 [0第0]7章 運行時刻環境 [0第0]7章 總結 [0第0]8章 代碼生成 [0第0]9章 機器無關[0優0]化 [0第0]10章 指令級並行 [0第0]11章 並行性和局部性的[0優0]化 [0第0]12章 過程間分析 |