| 書[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章 過程間分析 |
| 編輯推薦 |
| 編譯[0領0]域裏程碑式的經典*作——龍書,20年後終於齣版新版!這是一個延綿30年的故事,這是一部關於龍書的傳奇!*新版本,增添兩章節內容,使龍書地位***! 本書是編譯[0領0]域無可替代的經典*作,被廣[0大0]計算機專業人士譽為“龍書”。本書上一版自1986年齣版以來,被世界各地的*[0名0]高等院校和研究機構,本書為[0第0]2版,書中對每一章都進行瞭全麵的修訂,全麵介紹瞭編譯器的設計,並強調編譯技術在軟件設計和開發中的廣泛應用。每章中都包含[0大0]量的習題和豐富的參考文獻。 |
這本書簡直是給我打開瞭新世界的大門!作為一個對計算機底層運作原理一直充滿好奇但又不知從何下手的人,這本書簡直是我的救星。龍書這個名字果然名不虛傳,它的深度和廣度都令人驚嘆。初次翻開,那種浩瀚的知識海洋感撲麵而來,感覺自己就像一個初生的探險傢,站在一片未知的陸地上,渴望去瞭解這片土地的每一個角落。作者的講解循序漸進,雖然初看可能會覺得有些晦澀,但當你真正沉下心來,跟著書中的例子一步步推演,你會發現那些復雜的概念逐漸變得清晰起來。尤其是關於詞法分析和語法分析的部分,我之前一直覺得這是個黑箱,現在總算有點眉目瞭。那些正則錶達式、有限自動機,還有各種解析樹,都讓我看到瞭代碼是如何被計算機一步步理解和處理的。而且,書中對各種算法的講解非常透徹,不僅僅是給齣公式,更會解釋其背後的思想和適用場景,這一點對於我這種喜歡刨根問底的讀者來說,簡直是太重要瞭。讀這本書,我感覺自己不僅僅是在學習知識,更是在培養一種嚴謹的邏輯思維和解決問題的能力。雖然有些章節的難度係數很高,需要反復琢磨,但我堅信,隻要堅持下去,我一定能在這條學習之路上有所收獲。這本書的齣版年份雖然不是最新,但它所闡述的核心原理是永恒的,即使在飛速發展的計算機領域,這些基礎知識依然是構建更高級技術的大廈的基石。
評分坦白說,這本書的難度確實不低,對於沒有相關背景知識的讀者來說,上手可能會有些挑戰。我當初抱著學習的態度開始閱讀,但很快就發現,它需要的不僅僅是閱讀能力,更需要數學基礎和嚴謹的邏輯思維。特彆是關於形式語言和自動機理論的部分,那段時間我感覺自己置身於一個抽象的數學世界,各種定義和定理層齣不窮,一度感到有些迷失。然而,當我剋服瞭初期的睏難,真正理解瞭這些理論是如何應用於編譯器設計的,那種成就感是難以言喻的。書中的很多例子都非常經典,通過這些例子,我能夠將抽象的理論與實際的編程過程聯係起來。例如,關於遞歸下降分析的講解,我嘗試著自己去實現一個簡單的語法解析器,雖然過程中遇到瞭不少問題,但最終成功的那一刻,我感受到瞭理論轉化為實踐的巨大魅力。這本書的價值在於它不僅僅是告訴你“是什麼”,更是告訴你“為什麼”以及“如何做”。它提供瞭一種解決問題的框架和思路,這種能力不僅僅局限於編譯原理,在計算機科學的其他領域同樣受用。雖然我還沒有完全讀完,但已經從中受益匪淺,我正在努力理解書中的每一個細節,希望能將這些寶貴的知識融會貫通。
評分這本書,與其說是一本技術書籍,不如說是一本關於“思考”的書。在閱讀它的過程中,我被迫去思考那些我從未曾深入考慮過的問題:代碼究竟是如何被計算機理解的?一個程序從源代碼到可執行文件,經曆瞭哪些神奇的蛻變?書中對編譯器各個階段的深入剖析,讓我對這些問題的答案有瞭清晰的認識。它不僅僅是講解瞭算法和數據結構,更重要的是,它教會瞭我如何將復雜的係統進行分解,如何設計清晰的接口,以及如何在不同的約束條件下做齣最優的選擇。例如,在講解語法分析的時候,書中對不同解析策略的對比分析,讓我明白瞭選擇哪種方法取決於具體的語言特性和工程需求,這是一種非常寶貴的權衡能力。而且,書中對各種錯誤處理機製的討論,也讓我認識到,一個健壯的編譯器,不僅要能夠正確地處理閤法的輸入,還要能夠優雅地應對各種錯誤情況。這本書的閱讀過程,更像是一次思維的洗禮,讓我對計算機科學有瞭更深層次的理解,也為我將來從事更復雜的軟件開發工作打下瞭堅實的基礎。它讓我明白,真正的技術能力,不僅僅在於掌握知識,更在於理解知識背後的原理和思想。
評分這本書給我帶來的最深刻的感受,是它所蘊含的“工程之美”。在閱讀過程中,我仿佛看到瞭一個龐大的軟件工程是如何被精巧地分解、設計和實現的。作者不僅僅關注理論的嚴謹性,更注重實際應用的可行性和效率。例如,在講解代碼優化部分時,書中不僅介紹瞭各種優化算法,還討論瞭它們在實際編譯器中的權衡和取捨,以及如何平衡編譯時間和生成代碼的質量。這種對工程實踐的深刻洞察,讓我認識到,編寫一個優秀的編譯器,需要將理論、算法和工程經驗完美地結閤起來。書中對各種數據結構的巧妙運用,比如哈希錶、樹狀結構等,也給我留下瞭深刻的印象,它們是如何被用來高效地存儲和管理程序信息的。而且,這本書的邏輯組織非常清晰,每個章節都承接前一個章節的內容,形成一個完整的知識體係,這使得我在學習過程中不會感到碎片化,能夠逐步構建起對編譯器的整體認知。雖然這本書的篇幅較長,內容也相當豐富,但它所帶來的係統性學習體驗,絕對是物超所值的。我感覺自己不僅僅是在學習一門技術,更是在學習一種工程思維和解決復雜問題的能力。
評分作為一名剛開始接觸編譯原理這個領域的學生,我被這本書的係統性深深吸引。它提供瞭一個非常全麵且深入的學習路徑,從最基礎的詞法分析,到更復雜的代碼優化和目標代碼生成,幾乎涵蓋瞭編譯器的全部生命周期。我特彆喜歡書中對各種圖的運用,比如控製流圖、數據流圖等,這些圖形化的錶示極大地幫助我理解瞭抽象的概念,使得原本可能枯燥的理論變得生動形象。書中對各種中間代碼錶示的講解,比如三地址碼、P-code等,也讓我對程序在不同階段的形態有瞭更直觀的認識。而且,作者在講解每個概念時,都會給齣詳細的數學推導和算法描述,這對於我這種習慣於理論學習的人來說,無疑是巨大的福音。我能夠通過這些嚴謹的推導,去理解每一個細節的來龍去脈,而不是僅僅停留在錶麵。雖然有些地方需要反復閱讀纔能完全消化,但這種深入的講解方式,讓我對編譯器的運作機製有瞭更紮實的理解,也為我將來深入研究編譯器設計打下瞭堅實的基礎。這本書不僅僅是一本教材,更像是一個經驗豐富的導師,引導我在這個復雜而迷人的領域裏探索前行。它讓我明白,編寫高效、可靠的編譯器,背後是多麼精巧的設計和精深的理論支撐。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有