دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: (美)酷伯
سری: 计算机科学丛书
ISBN (شابک) : 7111179625, 9787111179627
ناشر: 机械工业出版社
سال نشر: 2006
تعداد صفحات: 512
زبان: Chinese
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 66 مگابایت
در صورت تبدیل فایل کتاب 编译器工程 به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب 编译器工程 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
封面 书名 版权 前言 目录 专家指导委员会对本书的赞誉 译者序 前言 第1章 编译总览 1.1 概述 出版者的话 1.2 为什么研究编译器构造法 1.3 编译的基本原则 1.4 编译器的结构 1.5.1 理解输入 1.5 翻译综述 1.5.2 创建和维护运行时环境 1.5.3 改进代码 1.5.4 生成输出程序 1.6 编译器应有的性质 1.7 概括和展望 本章注释 第2章 扫描 2.1 概述 2.2 识别字 2.2.1 识别器的形式 2.2.2 识别更复杂的字 2.2.3 扫描器的自动构建 2.3 正则表达式 2.3.1 正则表达式的定义 2.3.2 例子 2.3.3 RE的性质 2.4 从正则表达式到扫描器以及从扫描器到正则表达式 2.4.1 非确定性有穷自动机 2.4.2 正则表达式到NFA:Thompson构造法 2.4.3 NFA到DFA:子集构造法 2.4.4 DFA到最小DFA:Hopcroft算法 2.4.5 DFA到正则表达式 2.4.6 将DFA作为识别器 2.5 实现扫描器 2.5.1 表驱动扫描器 2.5.2 直接编码扫描器 2.5.3 处理关键字 2.5.4 描述动作 2.6 高级话题 本章注释 2.7 概括和展望 第3章 语法分析 3.1 概述 3.2 表示语法 3.2.1 上下文无关文法 3.2.2 构造句子 3.2.3 使用结构描述优先权 3.2.4 发现特定派生 3.2.5 上下文无关文法与正则表达式的对比 3.3 自顶向下分析 3.3.1 例子 3.3.2 自顶向下分析的复杂因素 3.3.3 消除左递归 3.3.4 消除回溯 3.3.5 自顶向下递归下降分析器 3.4 自底向上分析 3.4.1 移入归约分析 3.4.2 发现句柄 3.4.3 LR(1)分析器 3.5 构建LR(1)表格 3.5.1 LR(1)项目 3.5.2 构造规范集合 3.5.3 填充表格 3.5.4 表构造法的出错 3.6 实践中的问题 3.6.1 错误恢复 3.6.2 一元操作符 3.6.3 处理上下文相关歧义性 3.6.4 左递归与右递归 3.7 高级话题 3.7.1 优化文法 3.7.2 减小LR(1)表格的大小 3.8 概括和展望 本章注释 第4章 上下文相关分析 4.1 概述 4.2 类型系统概述 4.2.1 类型系统的目的 4.2.2 类型系统的组成部分 4.3 属性文法框架 4.3.1 评估方法 4.3.3 扩展例子 4.3.2 循环性 4.3.4 属性文法方法的问题 4.4 特定语法制导翻译 4.4.1 实现特定语法制导翻译 4.4.2 例子 4.5 高级话题 4.5.1 类型推断中的较难问题 4.5.2 更改结合性 4.6 概括和展望 本章注释 5.2 分类法 第5章 中间表示 5.1 概述 5.3 图示IR 5.3.1 与语法相关的树 5.3.2 图 5.4 线性IR 5.4.1 栈机器代码 5.4.2 三地址代码 5.4.3 表示线性代码 5.5 静态单赋值形式 5.6 把值映射到名字 5.6.1 命名临时值 5.6.2 内存模型 5.7 符号表 5.7.1 散列表 5.7.2 构建符号表 5.7.3 处理嵌套作用域 5.7.4 符号表的多种运用 5.8 概括和展望 本章注释 6.1 概述 第6章 过程抽象 6.2 控制抽象 6.3 名字空间 6.3.1 类Algol语言的名字空间 6.3.2 活动记录 6.3.3 面向对象语言的名字空间 6.4 过程间的值传递 6.4.1 参数传递 6.4.2 返回值 6.5.1 平凡基地址 6.5 建立可寻址性 6.5.2 其他过程的局部变量 6.6 标准链接 6.7 管理内存 6.7.1 内存布局 6.7.2 堆管理算法 6.7.3 隐式释放 6.8 概括和展望 本章注释 7.1 概述 第7章 代码形态 7.2 指定存储位置 7.2.1 布局数据区 7.2.2 把值保存在寄存器中 7.2.3 机器特性 7.3 算术操作符 7.3.1 降低对寄存器的要求 7.3.2 存取参数值 7.3.6 作为操作符的赋值 7.3.5 混合型表达式 7.3.4 其他算术操作符 7.3.3 表达式中的函数调用 7.3.7 交换性、结合性以及数系 7.4 布尔操作符和关系操作符 7.4.1 表示 7.4.2 关系操作的硬件支持 7.4.3 选择表示 7.5 存储和存取数组 7.5.1 引用向量元素 7.5.2 数组存储布局 7.5.3 引用数组元素 7.5.4 范围检测 7.6 字符串 7.6.1 串的表示 7.6.2 串赋值 7.6.3 串连接 7.6.4 串长 7.7 结构引用 7.7.1 装入和存储匿名值 7.7.2 理解结构布局 7.7.3 结构数组 7.8 控制流结构 7.7.4 联合和运行时标签 7.8.1 条件执行 7.8.2 循环和迭代 7.8.3 选择语句 7.8.4 中断语句 7.9 过程调用 7.9.1 评估实参 7.9.2 过程值参数 7.9.3 保存和恢复寄存器 7.10.1 单一类,无继承 7.10 实现面向对象语言 7.9.4 叶过程的优化 7.10.2 单一继承 7.11 概括和展望 本章注释 第8章 代码优化概述 8.1 概述 8.2 背景知识 8.2.1 LINPACK的一个例子 8.2.2 优化的各种考虑 8.3 冗余表达式 8.2.3 优化的机会 8.3.1 构建有向无环图 8.3.2 值编号 8.3.3 冗余消除的经验 8.4 优化作用域 8.4.1 局部方法 8.4.2 超局部方法 8.4.3 区域方法 8.5.1 超局部值编号 8.5 比基本块大的区域上的值编号 8.4.5 完整程序方法 8.4.4 全局方法 8.5.2 基于支配者的值编号 8.6 全局冗余消除 8.6.1 计算可用表达式 8.6.2 取代冗余计算 8.6.3 结合上述两个阶段 8.7 高级话题 8.7.1 通过复制增加上下文 8.7.2 内联替换 8.8 概括和展望 本章注释 第9章 数据流分析 9.1 概述 9.2 迭代数据流分析 9.2.1 活变量 9.2.2 迭代LIVEOUT解算器的性质 9.2.3 数据流分析的局限性 9.2.4 数据流分析的其他问题 9.3 静态单一赋值形式 9.3.2 支配 9.3.1 构建SSA形式的简单方法 9.3.3 放置φ函数 9.3.4 重命名 9.3.5 从SSA形式重新构造可执行代码 9.4 高级话题 9.4.1 结构数据流算法和可约性 9.4.2 过程间分析 9.5 概括和展望 本章注释 10.1 概述 第10章 标量优化 10.2 转换分类 10.2.1 机器无关转换 10.2.2 机器相关转换 10.3 优化示例 10.3.1 消除无用和不可达代码 10.3.2 代码移动 10.3.3 特化 10.3.4 激活其他转换 10.3.5 冗余消除 10.4.1 优化组合 10.4 高级话题 10.4.2 强度减弱 10.4.3 优化的其他目标 10.4.4 优化序列的选择 10.5 概括和展望 本章注释 第11章 指令筛选 11.1 概述 11.2 简单的树遍历方案 11.3 通过树模式匹配实现指令筛选 11.3.1 重写规则 11.3.2 寻找铺盖 11.3.3 工具 11.4 指令筛选与窥孔优化 11.4.1 窥孔优化 11.4.2 窥孔转换器 11.5 高级话题 11.5.1 学习窥孔模式 11.5.2 生成指令序列 11.6 概括和展望 本章注释 12.1 概述 第12章 指令调度 12.2 指令调度问题 12.2.1 调度质量的其他度量 12.2.2 使调度困难的因素 12.3 列表调度 12.3.1 效率 12.3.2 其他的优先度方案 12.3.3 前向与向后列表调度 12.3.4 使用列表调度的原因 12.4.1 区域调度 12.4 高级话题 12.4.2 上下文的复制 12.5 概括和展望 本章注释 第13章 寄存器分配 13.1 概述 13.2 背景问题 13.2.1 内存与寄存器 13.2.2 分配与赋值 13.3 局部寄存器分配和赋值 13.2.3 寄存器分类 13.3.1 自顶向下的局部寄存器分配 13.3.2 自底向上的局部寄存器分配 13.4 移到超出单一块的范围 13.4.1 活性和存活范围 13.4.2 块边界处的复杂性 13.5 全局寄存器分配和赋值 13.5.1 发现全局存活范围 13.5.2 评估全局溢出代价 13.5.3 冲突和冲突图 13.5.4 自顶向下着色 13.5.5 自底向上着色 13.5.6 接合存活范围以降低度 13.5.7 回顾与比较 13.5.8 在冲突图中编码机器限制 13.6 高级话题 13.6.1 图着色分配的若干变形 13.6.2 寄存器分配中较困难的问题 13.7 概括和展望 本章注释 A.1 概述 附录A ILOC A.2 命名约定 A.3 各种操作 A.3.1 算术 A.3.2 移位 A.3.3 内存操作 A.3.4 寄存器到寄存器的拷贝操作 A.4 例子 A.5 控制流操作 A.5.1 其他比较和分支语法 A.6 SSA形式的表示 A.5.2 跳转 附录B 数据结构 B.1 概述 B.2 表示集合 B.2.1 把集合表示成有序表 B.2.2 把集合表示成位向量 B.2.3 表示稀疏集合 B.3 实现中间表示 B.3.1 图式中间表示 B.3.2 线性中间形式 B.4 实现散列表 B.4.1 选择散列函数 B.4.2 开放散列 B.4.3 开放寻址 B.4.4 存储符号记录 B.4.5 增加嵌套词法作用域 B.5 一个灵活的符号表设计 附录注释 参考文献 练习 索引