目前位置: 首页 > 五术书籍 > 其它 > 从源头就优化:动手开发自己的编译器实战
您的购物车中有 0 件商品,总计金额 NT$0元。

浏览纪录

从源头就优化:动手开发自己的编译器实战

prev next

  • 商品编号: szsw9689
    出版社: 深智数位
  • 作者: 于东亮
    出版日: 2025/04/19
    ISBN13: 9786267569689
    商品状态: 一般
    装订: 平装170x230mm
    页数: 384
  • 定价:  NT$880元
  • 优惠价:  NT$880元
    登记后可再补货
  • 点击数: 49
    会员评价: comment rank 5

商品说明: 

从源头就优化 - 动手开发自己的编译器实战 ✴︎编译器如何诞生?从歷史到架构,古往今来 ✴︎词法分析不再难,简单步骤拆解关键技术 ✴︎语法分析实战,让程式码变成电脑能懂的语法树 ✴︎语义分析揭秘,变数与运算子的真正奥义 ✴︎三位址码登场,让程式码更接近机器世界 ✴︎基本区块划分,拆解程式流程的内部运作 ✴︎聪明分配暂存器,CPU效能发挥到极致 ✴︎机器码怎么生成?X86_64 与 ARM64 一次搞懂 ✴︎可执行档的秘密,Linux 连接器全解析 ✴︎指令码语言运作原理,深入虚拟机器核心 ✴︎编译器的终极挑战,数学模型解锁未来可能 作者简介 于东亮   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.5.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 和梯度下降演算法 12.4 复杂问题的简单解法

显示完整说明

商品标籤

会员才可增加商品标籤

会员评论(共0条评论)

  • 目前没有任何会员发表评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

会员帐号: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha