編譯器之旅-打造自己的編程語言 (微課視頻版) 于東亮 9787302667223 【台灣高等教育出版社】

圖書均為代購,正常情形下,訂後約兩周可抵台。
物品所在地:中國大陸
原出版社:清華大學
NT$375
商品編號:
供貨狀況: 尚有庫存

此商品參與的優惠活動

加入最愛
商品介紹
*完成訂單後正常情形下約兩周可抵台
*本賣場提供之資訊僅供參考,以到貨標的為正確資訊。
印行年月: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或書號,我們即儘速上架。
規格說明
運送方式
已加入購物車
已更新購物車
網路異常,請重新整理