TOP
0
0
魅麗。花火原創小說66折起
LLVM編譯器實戰教程(簡體書)
滿額折
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)
LLVM編譯器實戰教程(簡體書)

LLVM編譯器實戰教程(簡體書)

人民幣定價:79 元
定  價:NT$ 474 元
優惠價:87412
領券後再享88折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:12 點
相關商品
商品簡介
目次

商品簡介

本書內容簡介:LLVM是一個世界領先水平的編譯器框架。它包含有豐富軟件庫,可以為編譯器的初學者提供良好的學習體驗,並大大降低編譯器開發的學習門檻。本書的前半部分將向您介紹怎麼樣去配置、構建、和安裝LLVM的不同軟件庫、工具和外部項目。接下來,本書的後半部分將向您介紹LLVM的各種設計細節,並逐步地講解LLVM的各個編譯步驟:前段、中間表示(IR)、後端、即時編譯(JIT)引擎、跨平臺編譯和插件接口。本書包含有大量翔實的示例和代碼片段,以幫助讀者平穩順利的掌握LLVM的編譯器開發環境。

目次

出版者的話譯者序前言關於作者關於審稿人第1章 構建和安裝LLVM 11.1 瞭解LLVM版本 11.2 獲取預構建包 21.2.1 獲取官方預構建二進制文件 21.2.2 使用軟件包管理器 31.3 從源代碼構建 41.3.1 系統要求 41.3.2 獲取源代碼 41.3.3 構建和安裝LLVM 51.3.4 Windows和Microsoft Visual Studio 101.3.5 Mac OS X和Xcode 121.4 總結 14第2章 外部項目 152.1 Clang外部項目介紹 152.1.1 構建和安裝Clang外部工具 162.1.2 理解Compiler-RT 172.1.3 實驗Compiler-RT 172.2 使用DragonEgg插件 182.2.1 構建DragonEgg 192.2.2 使用DragonEgg和LLVM工具瞭解編譯流程 192.2.3 理解LLVM測試套件 202.2.4 使用LLDB 212.2.5 libc++標準庫介紹 232.3 總結 25第3章 工具和設計 263.1 LLVM的基本設計原理及其歷史 263.2 理解目前的LLVM 273.3 與編譯器驅動程序交互 293.4 使用獨立工具 303.5 深入LLVM內部設計 333.5.1 瞭解LLVM的基本庫 333.5.2 介紹LLVM的C++慣例 343.5.3 演示可插拔的流程接口 373.6 編寫你的第一個LLVM項目 383.6.1 編寫Makefile 383.6.2 編寫代碼 403.7 關於LLVM源代碼的一般建議 413.7.1 將代碼理解為文檔 423.7.2 請求社區的幫助 423.7.3 應對更新:使用SVN日誌作為文檔 423.7.4 結束語 443.8 總結 44第4章 前端 454.1 Clang簡介 454.1.1 前端操作 464.1.2 庫 474.1.3 理解Clang診斷 494.2 Clang前端階段介紹 524.2.1 詞法分析 524.2.2 語法分析 584.2.3 語義分析 634.2.4 生成LLVM IR代碼 654.3 完整的例子 654.4 總結 68第5章 LLVM中間表示 695.1 概述 695.2 操作IR格式的基本工具示例 715.3 LLVM IR語法介紹 715.4 編寫自定義的LLVM IR生成器 765.4.1 構建和運行IR生成器 795.4.2 使用C++後端編寫代碼來生成IR構造 805.5 在IR層執行優化 805.5.1 編譯時優化和鏈接時優化 805.5.2 發現最佳編譯器流程 825.5.3 流程間的依賴關係 835.5.4 瞭解流程API 855.5.5 自定義流程 855.6 總結 89第6章 後端 906.1 概述 906.2 後端代碼結構介紹 926.3 後端庫介紹 936.4 如何使用TableGen實現LLVM後端 946.4.1 TableGen語言 956.4.2 代碼生成器.td文件介紹 966.5 指令選擇階段介紹 1006.5.1 SelectionDAG類 1006.5.2 降級 1026.5.3 DAG合併以及合法化 1036.5.4 DAG到DAG指令選擇 1046.5.5 指令選擇過程可視化 1076.5.6 快速指令選擇 1076.6 調度器 1076.6.1 指令執行進程表 1086.6.2 競爭檢測 1096.6.3 調度單元 1096.7 機器指令 1096.8 寄存器分配 1106.8.1 寄存器合併器 1116.8.2 虛擬寄存器重寫 1146.8.3 編譯目標的信息 1156.9 前序代碼和結束代碼 1166.10 機器代碼框架介紹 1166.10.1 MC指令 1166.10.2 代碼輸出 1176.11 自定義機器流程 1196.12 總結 121第7章 即時編譯器 1227.1 LLVM JIT引擎的基礎知識介紹 1227.1.1 介紹執行引擎 1237.1.2 內存管理 1247.2 llvm::JIT框架介紹 1247.2.1 將二進制大對象寫入內存 1257.2.2 使用JITMemoryManager 1257.2.3 目標代碼輸出器 1257.2.4 目標信息 1277.2.5 學習如何使用JIT類 1277.3 llvm::MCJIT框架介紹 1317.3.1 MCJIT引擎 1317.3.2 MCJIT中模塊編譯過程 1327.3.3 使用MCJIT引擎 1357.4 使用LLVM JIT編譯工具 1377.4.1 使用lli工具 1377.4.2 使用llvm-rtdyld工具 1387.5 其他資源 1397.6 總結 139第8章 跨平臺編譯 1408.1 GCC和LLVM對比 1408.2 目標三元組介紹 1418.3 準備自己的工具鏈 1428.3.1 標準C/C++庫 1438.3.2 運行時庫 1438.3.3 彙編器和鏈接器 1448.3.4 Clang前端 1448.4 用Clang命令行參數進行交叉編譯 1458.4.1 針對目標的驅動程序選項 1458.4.2 依賴包 1458.4.3 交叉編譯 1468.4.4 更改系統根目錄 1488.5 生成Clang交叉編譯器 1498.5.1 配置選項 1498.5.2 構建和安裝基於Clang的交叉編譯器 1498.5.3 其他構建方法 1508.6 測試 1518.6.1 開發板 1518.6.2 模擬器 1518.7 其他資源 1528.8 總結 152第9章 Clang靜態分析器 1539.1 靜態分析器的作用 1539.1.1 傳統警告信息和Clang靜態分析器比較 1539.1.2 符號執行引擎的高效性 1569.2 測試靜態分析器 1589.2.1 使用驅動程序與使用編譯器 1589.2.2 瞭解可用的檢查器 1589.2.3 在Xcode IDE中使用靜態分析器 1609.2.4 生成HTML格式的圖形9.2.5 處理大型項目 1619.3 使用自定義的檢查器擴展靜態分析器 1649.3.1 熟悉項目架構 1649.3.2 自定義檢查器

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 412
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區