互联网
类型
可以朗读
语音朗读
125千字
字数
2025-01-01
发行日期
展开全部
主编推荐语
本书旨在引导读者通过实践理解并构建现代编译器。
内容简介
本书将带领读者使用Python语言动手构建编译器,通过循序渐进的方法,在设计和实现编译器的过程中了解基本概念、算法和数据结构等相关知识。本书将每章作为构建编译器的一个基本“步骤”,逐步为编译器添加功能。全书涵盖变量、寄存器、条件、循环、元组、函数、动态类型、通用类型等内容。
目录
- 版权信息
- 译者序
- 前言
- 第1章 预备知识
- 1.1 抽象语法树
- 1.2 语法
- 1.3 模式匹配
- 1.4 递归函数
- 1.5 解释器
- 1.6 编译器示例:部分求值器
- 第2章 整数与变量
- 2.1 LVar语言
- 2.2 x86Int汇编语言
- 2.3 规划x86汇编之旅
- 2.4 移除复杂操作数
- 2.5 选择指令
- 2.6 分配变量存储
- 2.7 修补指令
- 2.8 生成起始和收尾代码
- 2.9 挑战:LVar的部分求值器
- 第3章 语法分析
- 3.1 词法分析和正则表达式
- 3.2 文法和解析树
- 3.3 二义性文法
- 3.4 从解析树到抽象语法树
- 3.5 Earley算法
- 3.6 LALR(1)算法
- 3.7 进一步阅读
- 第4章 寄存器分配
- 4.1 寄存器和调用约定
- 4.2 活跃性分析
- 4.3 构建干涉图
- 4.4 利用数独进行图着色
- 4.5 修补指令
- 4.6 生成起始和收尾代码
- 4.7 挑战:传送偏置
- 4.8 进一步阅读
- 第5章 布尔值和条件表达式
- 5.1 LIf语言
- 5.2 LIf程序的类型检查
- 5.3 CIf中间语言
- 5.4 x86If语言
- 5.5 收缩LIf语言
- 5.6 移除复杂操作数
- 5.7 详细控制
- 5.8 选择指令
- 5.9 寄存器分配
- 5.10 修补指令
- 5.11 生成起始和收尾代码
- 5.12 挑战:优化块和移除跳转
- 5.13 进一步阅读
- 第6章 循环和数据流分析
- 6.1 LWhile语言
- 6.2 循环控制流和数据流分析
- 6.3 移除复杂操作数
- 6.4 详细控制
- 6.5 寄存器分配
- 第7章 元组和垃圾回收
- 7.1 LTup语言
- 7.2 垃圾回收
- 7.3 显露分配
- 7.4 移除复杂操作数
- 7.5 详细控制和CTup语言
- 7.6 选择指令和x86Global语言
- 7.7 寄存器分配
- 7.8 生成起始和收尾代码
- 7.9 挑战:数组
- 7.10 进一步阅读
- 第8章 函数
- 8.1 LFun语言
- 8.2 x86汇编下的函数
- 8.3 收缩LFun语言
- 8.4 揭示函数和LFunRef语言
- 8.5 限制函数
- 8.6 移除复杂操作数
- 8.7 详细控制和CFun语言
- 8.8 选择指令和语言
- 8.9 寄存器分配
- 8.10 修补指令
- 8.11 生成起始和收尾代码
- 8.12 翻译举例
- 第9章 词法作用域函数
- 9.1 Lλ语言
- 9.2 赋值和词法作用域函数
- 9.3 唯一化变量
- 9.4 赋值转换
- 9.5 闭包转换
- 9.6 显露分配
- 9.7 详细控制和CClos
- 9.8 选择指令
- 9.9 挑战:优化闭包
- 9.10 进一步阅读
- 第10章 动态类型
- 10.1 LDyn语言
- 10.2 标记值的表示
- 10.3 LAny语言
- 10.4 强制转换插入:编译LDyn为LAny
- 10.5 揭示强制转换
- 10.6 赋值转换
- 10.7 闭包转换
- 10.8 移除复杂操作数
- 10.9 详细控制和CAny
- 10.10 选择指令
- 10.11 LAny语言的寄存器分配
- 第11章 渐变类型
- 11.1 类型检查L?
- 11.2 解释LCast
- 11.3 重载解析
- 11.4 插入强制转换
- 11.5 低层类型转换
- 11.6 区分代理
- 11.7 揭示强制转换
- 11.8 闭包转换
- 11.9 选择指令
- 11.10 进一步阅读
- 第12章 泛型
- 12.1 编译泛型
- 12.2 解析实例化
- 12.3 擦除泛型类型
- 附录 x86指令集快速参考
- 参考文献
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。
