編譯係統透視:圖解編譯原理

編譯係統透視:圖解編譯原理 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
新設計團隊 著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-12-24

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 機械工業齣版社
ISBN:9787111498582
版次:1
商品編碼:11900636
品牌:機工齣版
包裝:平裝
叢書名: 華章原創精品
開本:16開
齣版時間:2016-04-01
用紙:膠版紙
頁數:1041


相關圖書





圖書描述

編輯推薦

  編譯原理領域的鴻篇巨著和裏程碑作品!60餘萬行源代碼和1140餘幅運行時結構圖從底層揭示程序編譯原理和GCC工作機製!中文版尚未齣版,英文版即輸齣美國。
  本書的齣版具有裏程碑意義:
  它*一次讓編譯原理不再像是一門高深晦澀的“數學課”,而是一個可以調試、可以接觸、可以真切感受的理論體係。本書用1140餘幅信息量巨大的運行時結構圖和視頻動畫取代瞭同類書中復雜枯燥的數學公式,更加立體和直觀,生動地將編譯後的執行程序在內存中的運行時結構圖展現瞭齣來;
  它*一次將GCC源代碼、編譯原理、運行時結構、編譯係統原理(包含匯編與鏈接)的內在關係、邏輯與原理梳理清楚瞭,並將它們結閤成一個整體。真正能夠讓讀者透徹掌握編譯器如何運行和如何設計,以及為什麼要這麼設計;
  它是*一本係統解讀著名商用編譯器GCC核心源代碼的著作,GCC源代碼一共有600萬行,為瞭便於講解和閱讀,本書進行瞭取捨和裁剪,講解瞭與編譯本質相關的核心的60萬行代碼。

內容簡介

  本書是編譯原理領域的鴻篇巨著,中文版尚未齣版,英文版權已經輸齣到美國,將在世界範圍內産生重要影響。從以下多個角度講,本書都具有重要的裏程碑意義:
  它讓編譯原理不再像是一門高深晦澀的“數學課”,而是一個可以調試、可以接觸、可以真切感受的理論體係。本書用1140餘幅信息量巨大的運行時結構圖和視頻動畫取代瞭同類書中復雜枯燥的數學公式,更加立體和直觀,生動地將編譯後的執行程序在內存中的運行時結構圖展現瞭齣來;
  它將GCC源代碼、編譯原理、運行時結構、編譯係統原理(包含匯編與鏈接)的內在關係、邏輯與原理梳理清楚瞭,並將它們結閤成一個整體。真正能夠讓讀者透徹掌握編譯器如何運行和如何設計,以及為什麼要這麼設計;
  它是係統解讀著名商用編譯器GCC核心源代碼的著作,GCC源代碼一共有600萬行,為瞭便於講解和閱讀,本書進行瞭取捨和裁剪,講解瞭與編譯本質相關的*核心的60萬行代碼。
  全書一共8章,具體內容和邏輯如下:
  1章以一個C程序(先簡單,後復雜)的運行時結構為依托,對程序編譯的整體過程做瞭宏觀講述,讓讀者對編譯有整體認識,這樣更容易理解後麵的內容。
  2~6章通過實際的程序案例、結閤GCC的源代碼,根據程序編譯的順序和流程,依次講解瞭詞法分析、語法分析、中間結構和目標代碼的生成,遵循瞭由易到難的原則,先是通過簡單程序講解清楚原理,然後再通過復雜程序強化理解。
  7章講解瞭與編譯器緊密關聯的匯編器和鏈接器,能讓讀者對可執行程序的*終生成有一個完整的瞭解。
  8章講解瞭預處理,就編譯器的執行順序而言,預處理器的執行比較靠前,之所以放在*後講,是因為它比較獨立,在讀者已經瞭解整個編譯過程中之後再講解,讀者會更容易理解。

作者簡介

  新設計團隊,新設計團隊由中國科學院大學的教師楊力祥發起,成立於世紀之交,團隊成員全部都是楊力祥老師的得意弟子,現在他們是很多企業核心和支柱。新設計團隊不斷發展、優勝劣汰、適者生存、自然形成。團隊在計算機領域中始終隻對*基礎的、有體係的事情感興趣,喜歡從根節點解決問題,目前已經在編譯器和操作係統等領域取得瞭突破性的成果,具體如下:

  1.圖示化的編譯器

  成功研發齣基於圖形、圖像(而非基於字符、語句)的圖示化集成開發環境,直接由圖形編譯為可執行程序,中間不再轉成一般的計算機語言。已經能夠成功的編譯掃雷等界麵應用程序,也可以成功編譯linux0.11這樣的簡單操作係統,編譯結果可以正確boot運行。

  2.安全操作係統

  研發齣全新的安全操作係統。使用現有CPU,內核依據新的原理設計而成,不需要安裝任何防火牆和殺毒軟件,就可以抵禦一切已知、未知的網絡入侵。此操作係統支持ftp的基礎功能,兼容Linux。此操作係統曾經於2014年4月1日至2014年9月30日在互聯網上懸賞1萬美金進行入侵攻擊測試,至今未有人攻破。

  3.基於安全CPU的安全操作係統

  根據新的操作係統原理,團隊還設計瞭包含全新安全指令的CPU,以及由安全CPU支持的安全操作係統。目前安全CPU的指令設計已經完成,開發瞭安全CPU仿真平颱及基於其上的全新安全操作係統。操作係統可以全麵支持Linux(技術上也可以做到全麵支持Windows或其他操作係統)。一旦CPU硬件設計製造完成,就可以直接運行安全操作係統,實現真正的安全(EAL7)。

  新設計團隊還將他們對編譯器和操作係統的研究理論成果集結成齣版物,除本書外,還齣版瞭《Linux內核設計的藝術》(2011年,機械工業齣版社)一書,版權輸齣到美國、韓國和中國颱灣,實現瞭國內計算機著作嚮美國輸齣的零的突破。英文版被美國的MIT、Stanford、Cornell、UMD等100多所大學圖書館及Library of Congress(美國國會圖書館)收藏。

目錄

作者簡介
前  言
第1章 運行時結構及編譯過程概述 1
1.1 一個簡單C程序的運行時結構 1
1.2 更為復雜C程序的運行時結構 16
1.3 編譯過程概述 25
1.3.1 詞法分析 25
1.3.2 語法分析 26
1.3.3 從語法樹到中間代碼再到目標代碼 26
第2章 詞法分析 28
2.1 詞法分析概要說明 28
2.2 詞法分析過程 31
2.3 狀態轉換圖 36
2.3.1 狀態轉換圖總體介紹 36
2.3.2 依托狀態轉換圖展現詞法分析過程 42
2.4 GCC實現詞法分析的源代碼 55
2.4.1 詞法分析源代碼總覽 55
2.4.2 結閤GCC源代碼講解詞法分析過程 55
2.4.3 標識符、數字、字符和字符串的詳細分析過程 65
第3章 語法分析 74
3.1 語法分析綜述 74
3.2 語法分析思路 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 語法分析結果:語法樹 107
3.7 GCC關於語法分析的源代碼解析 112
3.7.1 GCC語法分析函數調用圖 112
3.7.2 全部語句的語法分析 115
第4章 語法樹到目標代碼 217
4.1 總述語法樹到中間代碼的轉化過程 217
4.2 目標代碼到運行時結構的映射 224
4.3 語法樹轉高端gimple 232
4.3.1 語法樹到高端gimple的總體步驟及運行時 236
4.3.2 高端gimple的實際數據結構 241
4.3.3 語法樹轉高端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
第5章 語句拓展案例的編譯過程 353
5.1 總述各個語句拓展案例的編譯過程 353
5.2 if語句的語法分析 376
5.2.1 多個變量的聲明語句語法分析 376
5.2.2 if語句的語法分析過程 381
5.2.3 if...else if語句的語法分析過程 387
5.3 帶標號語句的語法分析 395
5.4 switch...case、goto、break語句的語法分析過程 399
5.4.1 switch...case 語句 399
5.4.2 goto語句 407
5.4.3 分析break語句 409
5.5 do...while、while、for語句的語法分析過程 420
5.5.1 do...while語句的語法分析 424
5.5.2 while語句的語法分析過程 433
5.5.3 for語句的語法分析過程 444
5.6 各種語句嵌套組閤的語法分析過程 472
5.6.1 兩條變量聲明語句分析的結果 477
5.6.2 分析while循環語句 477
5.6.3 進入if進行分析 480
5.6.4 進入else進行分析 485
5.7 所有案例語法樹轉中間結構的過程 516
5.7.1 案例1的語法樹轉高端gimple的總體介紹 516
5.7.2 案例1的語法樹轉高端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的語法樹轉高端gimple 587
5.7.7 案例3的語法樹轉高端gimple 596
第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 基礎類型數據的語法分析過程 652
6.2.1 非浮點型數據的語法分析 653
6.2.2 浮點型數據的語法分析 662
6.3 復閤類型數據的語法分析過程 670
6.3.1 數組的語法分析 670
6.3.2 枚舉類型數據的語法分析 675
6.3.3 struct類型數據的語法分析 678
6.3.4 union類型數據的語法分析 683
6.3.5 自定義數據聲明和使用的語法分析 684
6.4 指針類型數據的語法分析過程 693
6.4.1 對swap_point函數中指針的語法分析 693
6.4.2 對指針使用的語法分析 696
6.5 關於作用域和生存期的語法分析過程 705
6.5.1 C語言作用域和生存期概述 705
6.5.2 全局變量data語法分析中作用域相關處理過程 706
6.5.3 fun函數定義的語法分析中作用域相關處理 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生存期信息的語法分析 726
6.6 錶達式的語法分析過程 728
6.6.1 if條件中的錶達式語法分析 728
6.6.2 if條件下麵“語句”部分的錶達式語法分析 740
6.7 所有案例語法樹轉中間結構(RTL)的過程 754
6.7.1 基礎類型數據語法樹轉高端gimple的過程 754
6.7.2 用戶自定義數據語法樹轉高端gimple的過程 794
6.7.3 指針類型數據語法樹轉高端gimple的過程 838
6.7.4 作用域和生存期案例語法樹轉高端gimple的過程 878
6.7.5 復雜錶達式案例的語法樹轉高端gimple的過程 887
第7章 匯編與鏈接 934
7.1 匯編器 934
7.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文件鏈接時通過符號錶建立關係 989
7.2.3 鏈接時統一計算地址並迴填 997
7.2.4 鏈接器源代碼介紹 999
7.2.5 庫函數的鏈接 1002
7.2.6 動態鏈接 1002
第8章 預處理 1012
8.1 文件包含 1012
8.2 宏定義 1017
8.3 條件編譯 1019
8.4 帶參數的宏定義 1022
附錄 RTX定義 1031
作者的話 1039

前言/序言

  掌握程序在內存中的運行時結構對提高程序設計水平的重要性再怎麼強調都不過分,將程序員編寫的源代碼轉化為可執行程序是由編譯器完成的,編譯器對運行時結構的形成起著非常重要的作用。如果你想提高自己的編程水平,瞭解編譯器怎麼將你編寫的源代碼轉換為可執行程序的,那麼本書就是為你而寫的!如果你對編譯原理很感興趣,也很願意閱讀編譯器的源代碼,卻苦於代碼量龐大,不知從何下手,那麼你必將從本書中得到巨大的收獲。
  對程序員來說,提高編程水平最關鍵的因素之一就是瞭解程序的運行時結構,隻有瞭解瞭自己編寫的源代碼運行的時候在內存中是什麼樣的(運行時結構),纔能真正寫齣高質量的代碼。編譯器是將源代碼轉化為最終運行時結構的工具,如何實現運行時結構正是本書最重要的一條主綫。編譯器是一個非常經典的程序,其中包含的很多技術已廣泛應用於其他軟件(如文字處理軟件、數據庫、Web開發程序等)。讀懂編譯器的源代碼,對計算機軟件的很多方麵來說都會有藉鑒作用。
  一般介紹編譯原理的書籍通常都是空泛地講一些抽象的概念,甚至夾雜不少晦澀的數學公式,脫離瞭具體的編譯器,基本上沒有編譯器的源代碼,初學者很難理解。
  而本書則是以一個真實、具體、商用GCC編譯器的源代碼為藍本,以幾個案例程序的實際編譯為綫索,詳細講解編譯案例程序的源代碼的具體過程。
  本書先對讀者最難理解的復雜過程、關係和數據結構以動畫視頻的方式進行直觀、形象的講解。看過這些視頻,讀者就會對編譯原理有一個概略、直觀、整體的理解,從而很容易掌握更深的內容。紙質內容再將編譯原理與GCC編譯器的源代碼有機聯係起來,用瞭大量直觀的圖示、源代碼、文字做詳細講解。
  本書沒有用一個數學公式,力爭用最簡單易懂的語言把深奧的理論講明白。讀者在看完本書後會真正瞭解一個編譯器是如何運行的,以及為什麼要這麼設計,更重要的是知道編譯完的程序執行時在內存中的運行時結構是什麼樣的。
  我們還為讀者提供瞭一個縮減版的GCC源代碼。原版的GCC源代碼大約有600萬行,是一個適用於多種計算機語言的編譯器,體量過於龐大,幾乎無法在短時間內閱讀、理解,甚至很難記憶。我們隻保留瞭C語言的相關部分,並去掉瞭錯誤分析、處理和優化的相關部分,大約隻有130萬行,其中約50萬行是為瞭與具體指令集相關,由機器生成的代碼,僅涉及後端;在剩下的80萬行代碼中,與編譯本質相關的核心代碼大約有60萬行。此外,我們還提供瞭與之相對應的匯編器和鏈接器的源代碼,這些代碼雖然不是編譯器的一部分,但卻是生成完整的可執行程序必不可少的。我們還提供瞭一整套的開發調試環境,既有適用於Linux的,也有適用於Windows的。讀者可以在一個比較小的範圍內隨著本書的講解跟蹤調試,這樣效率更高。讀者在閱讀的時候始終都能與真實的編譯過程、真實的編譯器源代碼緊密相連。本書的編譯原理不再像一門“數學課”,而是一個可以調試、可以接觸、可以真切感受的理論體係。
  讀者隻要瞭解C語言的語法規則,會使用C語言編寫一些簡單的程序,就能看懂本書。



編譯係統透視:圖解編譯原理 下載 mobi epub pdf txt 電子書 格式

編譯係統透視:圖解編譯原理 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

編譯係統透視:圖解編譯原理 下載 mobi pdf epub txt 電子書 格式 2024

編譯係統透視:圖解編譯原理 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

好厚一本 內容大部分圖片方便理解

評分

很好,很好,很好,很好,很好

評分

書中的圖很多,需要一定基礎,否則可能看不懂

評分

送貨師傅狠給力,點個贊

評分

很厚但是很好用的書,圖例非常多,理解起來非常方便。

評分

沒看沒看沒看沒看沒看

評分

書的內容不錯,而且京東雙十一滿減活動給力!

評分

很好,希望再繼續齣些高質量的書。

評分

沒看沒看沒看沒看沒看

類似圖書 點擊查看全場最低價

編譯係統透視:圖解編譯原理 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有