發表於2024-11-23
書[0名0]: | 編譯係統透視:圖解編譯原理|64293 |
圖書定價: | 169元 |
圖書作者: | [親斤]設計團隊 |
齣版社: | [1機1] 械工業齣版社 |
齣版日期: | 2016/3/1 0:00:00 |
ISBN號: | 9787111498582 |
開本: | 16開 |
頁數: | 1041 |
版次: | 1-1 |
作者簡介 |
[親斤]設計團隊由中[0國0]科[0學0]院[0大0][0學0]的教師楊力祥發起,成立於世紀之交,團隊成員全部都是楊力祥老師的得意弟子,現在他們是很多企業核心和支柱。[親斤]設計團隊不斷發展、[0優0]勝劣汰、適者生存、自然形成。團隊在計算 [1機1] [0領0]域中始終隻對基礎的、有體係的事情感興趣,喜歡從根節點解決問題,目前已經在編譯器和操作係統等[0領0]域取得瞭突破性的成果,具體如下: 1.圖示化的編譯器 成功研發齣基於圖形、圖像(而非基於字符、語句)的圖示化集成開發環境,直接由圖形編譯為可執行程序,中間不再轉成一般的計算 [1機1] 語言。已經能夠成功編譯掃雷等界麵應用程序,也可以成功編譯Linux0.11這樣的簡單操作係統,編譯結果可以正確boot運行。 2.安全操作係統 研發齣全[親斤]的安全操作係統。使用現有CPU、內核依據[親斤]的原理設計而成,不需要安裝任何防火牆和殺毒軟件,就可以抵禦一切已[0知0]、未[0知0]的網絡入侵。此操作係統支持FTP的基礎功能,兼容Linux。此操作係統曾經於2014年4月1日至2014年9月30日在互聯網上懸賞1萬美金進行入侵攻擊測試,至今未有人攻破。 3.基於安全CPU的安全操作係統 根據[親斤]的操作係統原理,團隊還設計瞭包含全[親斤]安全指令的CPU,以及由安全CPU支持的安全操作係統。目前安全CPU的指令設計已經完成,開發瞭安全CPU仿真平颱及基於其上的全[親斤]安全操作係統。操作係統可以全麵支持Linux(技術上也可以做到全麵支持Windows或其他操作係統)。一旦CPU硬件設計製造完成,就可以直接運行安全操作係統,實現真正的安全(EAL7)。 [親斤]設計團隊還將其對編譯器和操作係統的研究理論成果集結成齣版物,除本書外,還齣版瞭《Linux內核設計的藝術》(2011年, [1機1] 械工業齣版社)一書,版[0[0權0]0]輸齣到美[0國0]、韓[0國0],實現瞭[0國0]內計算 [1機1] 著作嚮美[0國0]輸齣的零突破。英文版被美[0國0]的MIT、Stanford、Cornell、UMD等100多所[0大0][0學0]圖書館及Library of Congress(美[0國0][0國0][0會0]圖書館)收藏。 |
內容簡介 |
本書是編譯原理[0領0]域的鴻篇巨著,中文版尚未齣版,英文版[0[0權0]0]已經輸齣到瞭美[0國0]。本書的齣版將在世界範圍內産生重要影響。從以下多個角度講,本書都具有重要的裏程碑意義: 它次讓編譯原理不再像是一門高深晦澀的“數[0學0]課”,而是一個可以調試、可以接觸、可以真切感受的理論體係。本書用1140餘幅信息量巨[0大0]的運行時結構圖和視頻動畫取代瞭同類書中復雜枯燥的數[0學0]公式,更加立體和直觀,生動地將編譯後的執行程序在內存中的運行時結構圖展現瞭齣來。 它次將GCC源代碼、編譯原理、運行時結構、編譯係統原理(包含匯編與鏈接)的內在關係、邏輯與原理梳理清楚瞭,並將它們結閤成一個整體,真正能夠讓讀者透徹掌握編譯器如何運行、如何設計,以及為什麼要這麼設計。 它是本係統解讀著[0名0][0商0]用編譯器GCC核心源代碼的著作。GCC源代碼一共有600萬行,為瞭便於講解和閱讀,本書進行瞭取捨和裁剪,講解瞭與編譯本質相關的、核心的60萬行代碼。 全書一共8章,具體內容和邏輯如下: [0第0]1章以一個C程序(先簡單,後復雜)的運行時結構為依托,對程序編譯的整體過程做瞭宏觀講述,讓讀者對編譯有一個整體認識,這樣更容易理解後麵的內容。 [0第0]2~6章通過實際的程序案例、結閤GCC的源代碼,根據程序編譯的順序和流程,依次講解瞭詞[0法0]分析、語[0法0]分析、中間結構和目標代碼的生成,遵循瞭由易到難的原則,先是通過簡單程序講解清楚原理,然後通過復雜程序強化理解。 [0第0]7章講解瞭與編譯器緊密關聯的匯編器和鏈接器,讓讀者對可執行程序的終生成有一個完整的瞭解。 [0第0]8章講解瞭預處理,就編譯器的執行順序而言,預處理器的執行比較靠前,之所以放在後講,是因為它比較[0獨0]立,在讀者已經瞭解整個編譯過程之後再講解,讀者[0會0]更容易理解。 |
目錄 |
作者簡介 前言 [0第0]1章 運行時結構及編譯過程概述 1 1.1 一個簡單C程序的運行時結構 1 1.2 更為復雜C程序的運行時結構 16 1.3 編譯過程概述 25 1.3.1 詞[0法0]分析 25 1.3.2 語[0法0]分析 26 1.3.3 從語[0法0]樹到中間代碼再到目標代碼 26 [0第0]2章 詞[0法0]分析 28 2.1 詞[0法0]分析概要說明 28 2.2 詞[0法0]分析過程 31 2.3 狀態轉換圖 36 2.3.1 狀態轉換圖總體介紹 36 2.3.2 依托狀態轉換圖展現詞[0法0]分析過程 42 2.4 GCC實現詞[0法0]分析的源代碼 55 2.4.1 詞[0法0]分析源代碼總覽 55 2.4.2 結閤GCC源代碼講解詞[0法0]分析過程 55 2.4.3 標識符、數字、字符和字符串的詳細分析過程 65 [0第0]3章 語[0法0]分析 74 3.1 語[0法0]分析綜述 74 3.2 語[0法0]分析思路 74 3.3 産生式 78 3.3.1 什麼是産生式 78 3.3.2 産生式的具體示例 80 3.4 匹配産生式,消除左遞歸 89 3.4.1 用標準産生式做匹配,齣現左遞歸 89 3.4.2 消除左遞歸 93 3.4.3 産生式的工作效率 97 3.5 提取左公因子,消除迴溯 100 3.5.1 對“直接聲明符”的産生式提取左公因子 100 3.5.2 用提取過左公因子的産生式再去匹配 102 3.5.3 對其他産生式都提取左公因子 103 3.5.4 函數聲明和定義兩部分産生式的閤並 105 3.6 語[0法0]分析結果:語[0法0]樹 107 3.7 GCC關於語[0法0]分析的源代碼解析 112 3.7.1 GCC語[0法0]分析函數調用圖 112 3.7.2 全部語句的語[0法0]分析 115 [0第0]4章 語[0法0]樹到目標代碼 217 4.1 總述語[0法0]樹到中間代碼的轉化過程 217 4.2 目標代碼到運行時結構的映射 224 4.3 語[0法0]樹轉高端gimple 232 4.3.1 語[0法0]樹到高端gimple的總體步驟及運行時 236 4.3.2 高端gimple的實際數據結構 241 4.3.3 語[0法0]樹轉高端gimple的GCC源代碼解析 246 4.4 高端gimple到低端gimple 286 4.4.1 高端gimple轉低端gimple概述 286 4.4.2 高端gimple轉化低端gimple的GCC代碼解析 293 4.5 低端gimple到cfg 297 4.5.1 低端gimple到cfg的轉化概述 297 4.5.2 低端gimple轉cfg的實際過程 300 4.6 cfg轉ssa 301 4.7 生成RTL 305 4.7.1 為何要有RTL 305 4.7.2 轉化RTL階段的主要步驟 306 4.7.3 確定初始RTL中的運行時信息 320 4.8 RTL生成目標代碼(匯編) 332 4.8.1 匯編文件介紹 332 4.8.2 創建匯編文件 334 4.8.3 輸齣匯編文件總入口 334 4.8.4 全局變量寫入匯編文件 335 4.8.5 函數寫入匯編文件 340 [0第0]5章 語句拓展案例的編譯過程 353 5.1 總述各個語句拓展案例的編譯過程 353 5.2 if語句的語[0法0]分析 376 5.2.1 多個變量的聲明語句語[0法0]分析 376 5.2.2 if語句的語[0法0]分析過程 381 5.2.3 if...else if語句的語[0法0]分析過程 387 5.3 帶標號語句的語[0法0]分析 395 5.4 switch...case、goto、break語句的語[0法0]分析過程 399 5.4.1 switch...case 語句 399 5.4.2 goto語句 407 5.4.3 分析break語句 409 5.5 do...while、while、for語句的語[0法0]分析過程 420 5.5.1 do...while語句的語[0法0]分析 424 5.5.2 while語句的語[0法0]分析過程 433 5.5.3 for語句的語[0法0]分析過程 444 5.6 各種語句嵌套組閤的語[0法0]分析過程 472 5.6.1 兩條變量聲明語句分析的結果 477 5.6.2 分析while循環語句 477 5.6.3 進入if進行分析 480 5.6.4 進入else進行分析 485 5.7 所有案例語[0法0]樹轉中間結構的過程 516 5.7.1 案例1的語[0法0]樹轉高端gimple的總體介紹 516 5.7.2 案例1的語[0法0]樹轉高端gimple的代碼分析 528 5.7.3 案例1的高端gimple轉低端gimple 552 5.7.4 案例1的低端gimple到cfg 552 5.7.5 轉化RTL階段的主要步驟 562 5.7.6 案例2的語[0法0]樹轉高端gimple 587 5.7.7 案例3的語[0法0]樹轉高端gimple 596 [0第0]6章 數據拓展案例的編譯過程 612 6.1 數據拓展案例的編譯過程總述 612 6.1.1 基礎類型數據總述 612 6.1.2 用戶自定義類型數據總述 617 6.1.3 指針類型數據總述 626 6.1.4 作用域和生存期總述 640 6.1.5 錶達式總述 645 6.2 基礎類型數據的語[0法0]分析過程 652 6.2.1 非浮點型數據的語[0法0]分析 653 6.2.2 浮點型數據的語[0法0]分析 662 6.3 復閤類型數據的語[0法0]分析過程 670 6.3.1 數組的語[0法0]分析 670 6.3.2 枚舉類型數據的語[0法0]分析 675 6.3.3 struct類型數據的語[0法0]分析 678 6.3.4 union類型數據的語[0法0]分析 683 6.3.5 自定義數據聲明和使用的語[0法0]分析 684 6.4 指針類型數據的語[0法0]分析過程 693 6.4.1 對swap_point函數中指針的語[0法0]分析 693 6.4.2 對指針使用的語[0法0]分析 696 6.5 關於作用域和生存期的語[0法0]分析過程 705 6.5.1 C語言作用域和生存期概述 705 6.5.2 全局變量data語[0法0]分析中作用域相關處理過程 706 6.5.3 fun函數定義的語[0法0]分析中作用域相關處理 709 6.5.4 main函數定義中局部變量聲明data作用域處理過程 716 6.5.5 main函數內部語句塊中變量nCount作用域處理過程 719 6.5.6 main函數中引用變量data時選擇相應聲明節點的過程分析 719 6.5.7 main函數中引用變量nCount時選擇相應聲明節點的過程分析 720 6.5.8 main函數中退齣內部語句塊時更[親斤]變量作用域過程分析 721 6.5.9 fun函數中靜態變量temp生存期信息的語[0法0]分析 726 6.6 錶達式的語[0法0]分析過程 728 6.6.1 if條件中的錶達式語[0法0]分析 728 6.6.2 if條件下麵“語句”部分的錶達式語[0法0]分析 740 6.7 所有案例語[0法0]樹轉中間結構(RTL)的過程 754 6.7.1 基礎類型數據語[0法0]樹轉高端gimple的過程 754 6.7.2 用戶自定義數據語[0法0]樹轉高端gimple的過程 794 6.7.3 指針類型數據語[0法0]樹轉高端gimple的過程 838 6.7.4 作用域和生存期案例語[0法0]樹轉高端gimple的過程 878 6.7.5 復雜錶達式案例的語[0法0]樹轉高端gimple的過程 887 [0第0]7章 匯編與鏈接 934 7.1 匯編器 934 7.1.1 詳細介紹匯編指令到 [1機1] 器指令的轉化 934 7.1.2 .o文件格式總體情況介紹 953 7.1.3 代碼段、數據段以及其他各個錶項間的關係 962 7.1.4 從匯編文件到目標文件的實現 967 7.1.5 匯編器處理的源代碼分析 973 7.2 鏈接器 985 7.2.1 .o文件鏈接總體介紹 985 7.2.2 多個.o文件鏈接時通過符號 包郵 編譯係統透視:圖解編譯原理|64293 下載 mobi epub pdf txt 電子書 格式 包郵 編譯係統透視:圖解編譯原理|64293 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024包郵 編譯係統透視:圖解編譯原理|64293 下載 mobi pdf epub txt 電子書 格式 2024 包郵 編譯係統透視:圖解編譯原理|64293 下載 mobi epub pdf 電子書用戶評價
評分
評分
評分
評分
評分
評分
評分
評分
評分
類似圖書 點擊查看全場最低價
包郵 編譯係統透視:圖解編譯原理|64293 mobi epub pdf txt 電子書 格式下載 2024 分享鏈接相關圖書
|