| *完成訂單後正常情形下約兩周可抵台。 *本賣場提供之資訊僅供參考,以到貨標的為正確資訊。 印行年月:202408*若逾兩年請先於私訊洽詢存貨情況,謝謝。 台灣(台北市)在地出版社,每筆交易均開具統一發票,祝您中獎最高1000萬元。 書名:編譯器之旅-打造自己的編程語言 (微課視頻版) ISBN:9787302667223 出版社:清華大學 著編譯者:于東亮 叢書名:計算機技術開發與應用叢書 頁數:242 所在地:中國大陸 *此為代購商品 書號:1681099 可大量預訂,請先連絡。 內容簡介 本書以簡單的演算法、清晰的架構講述了把高級語言轉換成Linux程序的全過程,以及其中蘊含的數學原理。 本書共12章,按照源碼編譯的順序分為入門篇和進階篇。入門篇(第1∼4章)詳細介紹詞法分析、語法分析、語義分析,涵蓋編譯器前端的所有內容。進階篇(第5∼12章)進一步說明怎麼把抽象語法樹轉換成可執行程序的全過程,包含三地址碼的生成、中間代碼優化、寄存器分配、機器碼的生成、ELF文件格式、連接器和虛擬機的實現,以及作者對泛編譯器問題的進一步思考。 本書適合初學者學習編譯原理,也可用作資深程序員在開發一門新語言時的技術資料,還可用作高等院校和培訓機構的教學參考書。作者簡介 于東亮,SCF編譯器作者,資深C程序員和FFmpeg工程師,畢業於天津大學,長期從事Linux下的編程工作。先後製作了「C語言技術內幕」「Linux環境的編程詳解」「怎麼用C語言寫一個簡單EDA」「編譯器入門」等原創視頻合集。本書為作者的第一部實體書,以SCF編譯器為例講述了一門高級語言的開發過程。目錄 入門篇第1章 編譯器簡介 1 1 編程語言的發展史 1 2 編譯器在IT行業里的核心地位 1 3 編譯器的代碼架構 第2章 詞法分析 2 1 「理想語言」的詞法分析 2 2 實際編程語言的詞法擴展 2 2 1 編程語言的標誌符 2 2 2 關鍵字 2 2 3 數字 2 2 4 數據結構 2 3 詞法分析的數學解釋 第3章 語法分析 3 1 語句類型的劃分 3 2 語句的嵌套和遞歸分析 3 2 1 變數聲明語句的分析 3 2 2 類型定義語句的分析 3 2 3 順序塊的分析 3 2 4 表達式的分析 3 2 5 運算符的優先順序和結合性 3 2 6 表達式樹的構造步驟 3 2 7 完整的抽象語法樹 3 2 8 抽象語法樹的數據結構 3 2 9 變數和類型的數據結構 3 2 10 變數的諸法檢查 3 2 11 屋號和乘法的區分 3 3 語法的靈活編輯和有限自動機框梁 3 3 1 有限自動機的簡介 3 3 2 語法的編輯 3 3 3 編程語言的語法圖 3 3 4 SCF框架怎麼實現「遞歸」 3 3 5 語法分析框架的模塊上下文 3 3 6 for循環的語法分析模塊 3 3 7 小括弧的多種含義 3 4 語法分析的數學解釋 第4章 語義分析 4 1 類型檢查 4 2 語義分析框架 4 2 1 語義分析的回調函數 4 2 2 語義分析中的遞歸 4 3 運算符重載 4 3 1 運算符重載的實現 4 3 2 函數調用 4 3 3 重載函數的查找 4 3 4 代碼實現 4 3 5 SCF編譯器的類對象 4 4 new關鍵字 4 5 多值函數 4 5 1 應用程序二進位介面 4 5 2 語法層面的支持 4 5 3 語義層面的支持 進階篇 第5章 三地址碼的生成 5 1 回填技術 5 1 1 回填的數據結構 5 1 2 三地址碼的數據結構 5 1 3 回填的步驟 5 2 if-else的三地址碼 5 3 循環的入口和出口 5 4 指針與數組的賦值 5 5 new關鍵字的三地址碼 5 6 跳轉的優化 5 6 1 跳轉的優化簡介 5 6 2 邏輯運算符的短路優化 5 6 3 死代碼消除 5 6 4 代碼實現 第6章 基本塊的劃分 6 1 比較、跳轉導致的基本塊劃分 6 2 函數調用 6 3 基本塊的流程圖 第7章 中間代碼優化 7 1 代碼框架 7 2 內聯函數 7 3 有向無環圖 7 3 1 公共子表達式 7 3 2 數據結構 7 3 3 有向無環圖的生成 7 4 圖的搜索演算法 7 4 1 基本塊的數據結構 7 4 2 寬度優先搜索 7 4 3 深度優先搜索 7 5 指針分析 7 5 1 指針解引用的分析 7 5 2 數組和結構體的指針分析 7 6 跨函數的指針分析 7 7 變數活躍度分析 7 7 1 變數的活躍度 7 7 2 單個基本塊的變數活躍度分析 7 7 3 基本塊流程圖上的分析 7 7 4 代碼實現 7 8 自動內存管理 7 9 DAG優化 7 9 1 無效運算 7 9 2 相同子表達式的判斷 7 9 3 出口活躍變數的優化 7 9 4 后十十的優化 7 9 5 邏輯運算符的優化 7 9 6 DAG優化的代碼實現 7 10 循環分析 7 10 1 循環的識別 7 10 2 循環的優化 第8章 寄存器分配 8 1 不同CPU架構的寄存器組 8 2 變數之間的衝突 8 3 圖的著色演算法 8 3 1 簡單著色演算法 8 3 2 改進的著色演算法 第9章 機器碼的生成 9 1 RISC架構的優勢 9 2 寄存器溢出 9 2 1 寄存器的數據結構 9 2 2 寄存器的衝突 9 2 3 寄存器的溢出 9 3 X86 64的機器碼生成 9 3 1 X86_64的機器指令 9 3 2 機器碼的生成 9 3 3 目標文件 9 4 ARM64的機器碼生成 9 4 1 指令特點 9 4 2 機器碼生成 第10章 ELF格式和可執行程序的連接 10 1 ELF格式 10 1 1 文件頭 10 1 2 節頭表 10 1 3 程序頭表 10 1 4 ELF格式的實現 10 2 連接器 10 2 1 連接 10 2 2 靜態連接 10 2 3 動態連接 10 2 4 編譯器的主流程 10 3 可執行文件的運行 10 3 1 進程創建 10 3 2 程序的載入和運行 10 3 3 動態庫函數的載入 10 3 4 源代碼的編譯、連接、運行 第11章 Naja位元組碼和虛擬機 11 1 Naja位元組碼 11 2 虛擬機 11 2 1 虛擬機的數據結構 11 2 2 虛擬機的運行 11 2 3 動態庫函數的載入 第12章 信息編碼的數學哲學 12 1 信息編碼格式的轉換 12 2 多項式時間的演算法 12 3 自然指數e和梯度下降演算法 1 詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於PChome商店街私訊告知ISBN或書號,我們即儘速上架。 |