深入分析GCC+編譯係統透視:圖解編譯原理 2本 源碼分析係列書籍

深入分析GCC+編譯係統透視:圖解編譯原理 2本 源碼分析係列書籍 pdf epub mobi txt 電子書 下載 2025

圖書標籤:
  • GCC
  • 編譯原理
  • 源碼分析
  • 編譯器
  • 底層原理
  • 技術
  • 計算機
  • 編程
  • 深入解析
  • 圖解
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
店鋪: 藍墨水圖書專營店
齣版社: 機械工業齣版社
ISBN:9787111556329
商品編碼:10258884350

具體描述

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

深入分析GCC 源碼分析係列書籍 GCC設計與實現 GCC總體設計 代碼架構

9787111556329 9787111498582

深入分析GCC

 

定價:¥99.00

 

 

基本信息

 

作者:王亞剛  

叢書名:源碼分析係列

齣版社:機械工業齣版社

ISBN:9787111556329

上架時間:2017-2-10

齣版日期:2017 年2月

開本:16開

版次:1-1

所屬分類: 計算機

 

編輯推薦

 

國內不可多得的全麵係統介紹GCC設計與實現的書籍,對GCC的總體設計、主要代碼架構及實現細節進行瞭深入的分析和總結本書結閤GCC4 4.0源代碼,圍繞GCC編譯過程,以GCC中的中間錶示AST、GlMPLE及RTL為主綫,為讀者描述瞭一條從源代碼到目標機器匯編代碼的清晰路綫圖

 

目錄

 

前言

第1章 GCC概述 1

1.1 GCC的産生與發展 1

1.2 GCC的特點 2

1.3 GCC代碼分析 3

第2章 GCC源代碼分析工具 4

2.1 vim+ctags代碼閱讀工具 4

2.2 GNU gdb調試工具 6

2.3 GNU binutils工具 8

2.4 shell工具及graphviz繪圖工具 11

2.5 GCC調試選項 13

第3章 GCC總體結構 16

3.1 GCC的目錄結構 16

3.2 GCC的邏輯結構 18

3.3 GCC源代碼編譯 20

3.3.1 配置 21

3.3.2 編譯 23

3.3.3 安裝 25

第4章 從源代碼到AST/GENERIC 26

4.1 抽象語法樹 26

4.2 樹節點的聲明 28

4.3 樹節點結構 33

4.3.1 struct tree_base 35

4.3.2 struct tree_common 36

4.3.3 常量節點 38

4.3.4 標識符節點 42

4.3.5 聲明節點 44

4.3.6 struct tree_decl_minimal 46

4.3.7 struct tree_decl_common 46

4.3.8 struct tree_field_decl 49

4.3.9 struct tree_decl_with_rtl 55

4.3.10 struct tree_label_decl 55

4.3.11 struct tree_result_decl 56

4.3.12 struct tree_const_decl 57

4.3.13 struct tree_parm_decl 57

4.3.14 struct tree_decl_with_vis 59

4.3.15 struct tree_var_decl 59

4.3.16 struct tree_decl_non_common 62

4.3.17 struct tree_function_decl 62

4.3.18 struct tree_type_decl 64

4.3.19 類型節點 67

4.3.20 tree_list節點 68

4.3.21 錶達式節點 71

4.3.22 語句節點 73

4.3.23 其他樹節點 75

4.4 AST輸齣及圖示 76

4.5 AST的生成 83

4.5.1 詞法分析 84

4.5.2 詞法分析過程 90

4.5.3 語法分析 98

4.5.4 語法分析過程 99

4.5.5 c_parse_file 103

4.5.6 c_parser_translation_unit 105

4.5.7 c_parser_external_declaration 105

4.5.8 c_parser_declaration_or_fndef 107

4.5.9 c_parser_declspecs 112

4.6 小結 114

第5章 從AST/GENERIC到GIMPLE 115

5.1 GIMPLE 115

5.2 GIMPLE語句 119

5.3 GIMPLE的錶示與存儲 122

5.4 GIMPLE語句的操作數 128

5.5 GIMPLE語句序列的基本操作 132

5.6 GIMPLE的生成 135

5.6.1 gimplify_function_tree 136

5.6.2 gimplify_body 138

5.6.3 gimlify_parameters 139

5.6.4 gimplify_stmt 144

5.6.5 gimplify_expr 144

5.7 GIMPLE轉換實例 157

5.7.1 BIND_EXPR節點的GIMPLE生成 158

5.7.2 STATEMENT_LIST_EXPR節點的GIMPLE生成 159

5.7.3 MODIFY_EXPR節點的GIMPLE生成 160

5.7.4 POSTINCREMENT_EXPR節點的GIMPLE生成 162

5.8 實例分析 172

5.9 小結 176

第6章 GIMPLE處理及其優化 177

6.1 GCC Pass 177

6.1.1 核心數據結構 177

6.1.2 Pass的類型 179

6.1.3 Pass鏈的初始化 182

6.1.4 Pass的執行 184

6.2 Pass列錶 187

6.3 GIMPLE Pass實例 193

6.3.1 pass_remove_useless_stmts 193

6.3.2 pass_lower_cf 195

6.3.3 pass_build_cfg 197

6.3.4 pass_build_cgraph_edges 203

6.3.5 pass_build_ssa 205

6.3.6 pass_all_optimizations 206

6.3.7 pass_expand 207

6.4 小結 207

第7章 RTL 208

7.1 RTL中的對象類型 209

7.2 RTX_CODE 210

7.3 RTX類型 210

7.4 RTX輸齣格式 212

7.5 RTX操作數 213

7.6 RTX的機器模式 216

7.7 RTX的存儲 219

7.8 RTX錶達式 222

7.8.1 常量 225

7.8.2 寄存器和內存 227

7.8.3 算術運算 228

7.8.4 比較運算 230

7.8.5 副作用 230

7.9 IR-RTL 232

7.9.1 INSN 233

7.9.2 JUMP_INSN 234

7.9.3 CALL_INSN 235

7.9.4 BARRIER 235

7.9.5 CODE_LABEL 236

7.9.6 NOTE 237

7.10 小結 238

第8章 機器描述文件${target}.md 239

8.1 機器描述文件 240

8.2 指令模闆 241

8.2.1 模闆名稱 242

8.2.2 RTL模闆 246

8.2.3 條件 256

8.2.4 輸齣模闆 256

8.2.5 屬性 256

8.3 定義RTL序列 257

8.4 指令拆分 263

8.5 枚舉器 266

8.5.1 mode枚舉器 266

8.5.2 code枚舉器 268

8.6 窺孔優化 269

8.6.1 define_peephole 269

8.6.2 define_peephole2 270

8.7 小結 271

第9章 機器描述文件${target}.[ch] 272

9.1 targetm 272

9.1.1 struct gcc_target的定義 273

9.1.2 targetm的初始化 277

9.2 編譯驅動及選項 279

9.2.1 編譯選項 280

9.2.2 SPEC語言及SPEC文件 281

9.2.3 機器相關的編譯選項 285

9.3 存儲布局 286

9.3.1 位順序和字節順序 286

9.3.2 類型寬度 287

9.3.3 機器模式提升 287

9.3.4 存儲對齊 288

9.3.5 編程語言中數據類型的存儲布局 289

9.4 寄存器使用 290

9.4.1 寄存器的基本描述 290

9.4.2 寄存器分配順序 297

9.4.3 機器模式 298

9.4.4 寄存器類型 300

9.5 堆棧及函數調用規範描述 307

9.5.1 堆棧的基本特性 309

9.5.2 寄存器消除 313

9.5.3 函數棧幀的管理 315

9.5.4 參數傳遞 316

9.5.5 函數返迴值 318

9.5.6 i386機器棧幀 318

9.6 尋址方式 325

9.7 匯編代碼分區 326

9.8 定義輸齣的匯編語言 333

9.8.1 匯編代碼文件的框架 333

9.8.2 數據輸齣 336

9.8.3 未初始化數據輸齣 336

9.8.4 標簽輸齣 338

9.8.5 指令輸齣 342

9.9 機器描述信息的提取 343

9.9.1 gencode.c 347

9.9.2 genattr.c 348

9.9.3 genattrtab.c 348

9.9.4 genrecog.c 349

9.9.5 genflag.c 352

9.9.6 genemit.c 353

9.9.7 genextract.c 354

9.9.8 genopinit.c 356

9.9.9 genoutput.c 360

9.9.10 genpreds.c 362

9.9.11 其他 363

9.10 小結 364

第10章 從GIMPLE到RTL 365

10.1 GIMPLE序列 365

10.2 典型數據結構 366

10.3 RTL生成的基本過程 367

10.3.1 變量展開 370

10.3.2 參數及返迴值處理 380

10.3.3 初始塊的處理 395

10.3.4 基本塊的RTL生成 398

10.3.5 退齣塊的處理 410

10.3.6 其他處理 411

10.4 GIMPLE語句轉換成RTL 411

10.4.1 GIMPLE語句轉換的一般過程 412

10.4.2 GIMPLE_GOTO語句的RTL生成 415

10.4.3 GIMPLE_ASSIGN語句的RTL生成 417

10.5 小結 432

第11章 RTL處理及優化 433

11.1 RTL處理過程 433

11.2 特殊虛擬寄存器的實例化 435

11.3 指令調度 437

11.3.1 指令調度算法 439

11.3.2 GCC指令調度的實現 440

11.3.3 指令調度實例1 442

11.3.4 指令調度實例2 459

11.4 統一寄存器分配 460

11.4.1 基本術語 461

11.4.2 寄存器分配的主要流程 463

11.4.3 代碼分析 466

11.4.4 寄存器分配實例1 468

11.4.5 寄存器分配實例2 483

11.5 匯編代碼生成 494

11.5.1 匯編代碼文件的結構 495

11.5.2 從RTL到匯編代碼 499

11.6 小結 502

第12章 支持新的目標處理器 503

12.1 GCC移植 503

12.2 PAAG處理器 504

12.2.1 PAAG處理器指令集 505

12.2.2 應用二進製接口 505

12.3 GCC移植的基本步驟 506

12.4 PAAG機器描述文件(paag.md) 507

12.5 paag.[ch]文件 512

12.5.1 存儲布局 512

12.5.2 寄存器使用規範 513

12.5.3 堆棧布局及堆棧指針 514

12.5.4 函數調用規範 515

12.5.5 尋址方式 519

12.5.6 匯編代碼輸齣 521

12.5.7 雜項 523

12.6 PAAG後端注冊 523

12.7 GCC移植測試 524

12.8 小結 526

參考文獻 527

索引 529 

 

  • 版 次:
  • 頁 數:
  • 字 數:277
  • 印刷時間:
  • 開 本:128開
  • 紙 張:膠版紙
  • 印 次:1
  • 包 裝:平裝
  • 是否套裝:否
  • 國際標準書號ISBN:9787111498582
  • 所屬分類:>>>

本書的齣版具有裏程碑意義:

它一次讓編譯原理不再像是一門高深晦澀的“數學課”,而是一個可以調試、可以接觸、可以真切感受的理論體係。本書用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的安全操作係統

用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

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

© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有