编辑推荐
暂无
内容简介
本书系统地介绍了可变目标ANSIC编译器lcc的设计方法和实现技术。lcc是一个实用的编译器,能够为不同的目标机器(如MIPSR3000、SPARC、Intel386及其后续产品)生成代码。本书结合lcc的具体实现,详细讲述了存储管理、符号表、词法分析、语法分析、中间代码生成、优化、目标代码产生等编译程序的各个部分。全书共分19章,各章之后均附有练习。本书特色鲜明,实用性强,适合作为高等院校计算机专业的编译原理课程的教材或参考书,对从事编译相关工作的技术人员也有很好的参考价值。
作者简介
暂无
目录
目 录A Retargetable C Compiler: Design and Implementation出版者的话译者序前言第1章 引论 11.1 文本程序 11.2 如何使用本书 21.3 概述 31.4 设计 71.5 公共声明 111.6 语法规范 131.7 错误 14深入阅读 15第2章 存储管理 162.1 内存管理接口 162.2 分配区的表示 172.3 空间分配 182.4 空间释放 202.5 字符串 20深入阅读 23练习 23第3章 符号管理 263.1 符号的表示 273.2 符号表的表示 293.3 作用域的改变 323.4 查找和建立标识符 323.5 标号 333.6 常量 343.7 产生的变量 37深入阅读 38练习 38第4章 类型 404.1 类型表示 404.2 类型管理 424.3 类型断言 454.4 类型构造器 464.5 函数类型 484.6 结构和枚举类型 494.7 类型检查函数 524.8 类型映射 56深入阅读 56练习 57第5章 代码生成接口 595.1 类型度量 595.2 接口记录 605.3 符号 605.4 类型 615.5 dag操作 615.6 接口标志 655.7 初始化 675.8 定义 675.9 常量 695.10 函数 705.11 接口绑定 725.12 上行调用 73深入阅读 75练习 75第6章 词法分析器 776.1 输入 776.2 单词的识别 816.3 关键字的识别 856.4 标识符的识别 866.5 数字的识别 876.6 字符常量和字符串的识别 92深入阅读 95练习 95第7章 语法分析 977.1 语言和语法 977.2 二义性和分析树 987.3 自上而下的语法分析 1007.4 FIRST和FOLLOW集合 1027.5 编写分析函数 1047.6 处理语法错误 106深入阅读 110练习 111第8章 表达式 1128.1 表达式的表示 1128.2 表达式分析 1158.3 C语言表达式的分析 1178.4 赋值表达式 1198.5 条件表达式 1218.6 二元表达式 1228.7 一元表达式和后缀表达式 1248.8 基本表达式 127深入阅读 130练习 130第9章 表达式语义 1329.1 转换 1329.2 一元操作符和后缀操作符 1369.3 函数调用 1419.4 二元操作符 1479.5 赋值操作 1509.6 条件操作 1549.7 常量折叠 156深入阅读 165练习 165第10章 语句 16710.1 代码的表示 16710.2 执行点 17010.3 语句的识别 17110.4 if语句 17310.5 标号和goto语句 17410.6 循环 17610.7 switch语句 17810.8 return语句 18810.9 管理标号和跳转指令 191深入阅读 194练习 194第11章 声明 19611.1 转换单元 19611.2 声明 19711.3 声明符 20611.4 函数声明符 21011.5 结构说明符 21511.6 函数定义 22211.7 复合语句 22911.8 结束处理 23611.9 主程序 238深入阅读 240练习 241第12章 中间代码的生成 24312.1 消除公共子表达式 24412.2 构建节点 24812.3 控制流 25012.4 赋值语句 25612.5 函数调用 25912.6 强制计算顺序 26112.7 驱动代码生成 26312.8 删除多次引用的节点 267深入阅读 272练习 273第13章 构造代码生成器 27513.1 代码生成器的组织 27613.2 接口扩展 27713.3 上行调用 27913.4 节点扩展 28013.5 符号扩展 28213.6 帧的布局 28413.7 生成块复制的代码 28713.8 初始化 289深入阅读 290练习 290第14章 选择和发送指令 29114.1 规范 29214.2 标记树 29414.3 化简树 29514.4 代价函数 30214.5 调试 30314.6 发送器 30414.7 寄存器定位 30914.8 指令选择的协调 31314.9 共享规则 31414.10 编写规范 315深入阅读 316练习 316第15章 寄存器分配 31815.1 组织结构 31815.2 寄存器状态跟踪 31915.3 寄存器分配 32215.4 寄存器溢出 327深入阅读 334练习 334第16章 MIPS R3000代码的生成 33516.1 寄存器 33616.2 指令的选取 33916.3 函数的实现 34916.4 数据的定义 35516.5 块的复制 359深入阅读 360练习 360第17章 SPARC代码的生成 36217.1 寄存器 36317.2 指令的选取 36617.3 函数的实现 37817.4 数据的定义 38417.5 块的复制 386深入阅读 387练习 387第18章 X86代码的生成 38918.1 寄存器 39018.2 指令的选取 39418.3 函数的实现 40718.4 数据的定义 409深入阅读 412练习 412第19章 回顾 41319.1 数据结构 41319.2 接口 41419.3 句法和语义分析 41519.4 代码生成和优化 41619.5 测试和验证 416深入阅读 417参考文献 419
可变目标C编译器:设计与实现 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版