新書推薦:
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
154.6
《
双城史
》
售價:HK$
110.9
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:HK$
55.8
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:HK$
50.4
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:HK$
88.5
《
透过器物看历史(全6册)
》
售價:HK$
490.6
《
我在台北故宫博物院读名画
》
售價:HK$
109.8
《
尼罗河往事:古埃及文明4000年
》
售價:HK$
76.2
|
編輯推薦: |
胡元义主编的这本《编译原理教程第3版》共分八章。第一章简要介绍了编译的基本概念。第二章介绍了词法分析的相关内容,主要涉及正规表达式与有限自动机。第三章主要介绍语法分析,首先简要地介绍了文法的有关概念,然后介绍了自顶向下语法分析方法一递归下降分析法和LL1分析法,最后介绍了自底向上语法分析方法——算符优先分析法和LR分析法。第四章介绍了语法制导翻译与中间代码生成的有关内容,给出了如何在语法分析的同时进行语义加工并产生出中间代码的方法。第五章介绍了代码优化的有关内容,主要涉及基本块优化和循环优化;此外,还增加了“全局优化概述”一节,以便读者对优化代码有一个全面、完整的了解。第六章介绍了程序运行时存储空间的组织。第七章讨论目标代码生成的有关内容,讲述了如何由中间代码产生出最终目标代码。第八章简要地介绍了符号表的组织与错误处理的方法。
|
內容簡介: |
胡元义主编的这本《编译原理教程第3版》系统地介绍了编译程序的设计原理及实现技术,主要内容包括:绪论、词法分析、语法分析、语义分析和中间代码生成、代码优化、目标程序运行时存储空间的组织、目标代码生成、符号表与错误处理等。
在内容的组织上,本书强调知识的实用性,将编译的基本理论与具体的实现技术有机地结合起来,既注重了理论的完整性,化繁为简,又将理论融于具体的实例中,化难为易,以达到准确、清楚地阐述相关概念和原理的目的。本书注重各章节对理论阐述的条理性,书中给出的例子也具有较强的实用性与连贯性,使读者对编译的各个阶段有一个全面、直观的认识。本书采用的算法全部由C语言描述,各章均附有习题。
《编译原理教程第3版》可作为计算机本科专业的教材,也可作为计算机软件工程人员的参考资料。
|
目錄:
|
第一章 绪论
1.1 程序设计语言和编译程序
1.2 编译程序的历史及发展
1.3 编译过程和编译程序结构
1.4 编译程序的开发
1.5 构造编译程序所应具备的知识内容
习题
第二章 词法分析
2.1 词法分析器的设计方法
2.1.1 单词符号的分类与输出形式
2.1.2 状态转换图
2.2 一个简单的词法分析器示例
2.2.1 C语言子集的单词符号表示
2.2.2 C语言子集对应的状态转换图
2.2.3 状态转换图的实现
2.3 正规表达式与有限自动机简介
2.3.1 正规表达式与正规集
2.3.2 有限自动机
2.4 正规表达式到有限自动机的构造
2.4.1 由正规表达式构造等价的非确定有限自动机NIFA
2.4.2 NFA的确定化
2.4.3 确定有限自动机IFA的化简
2.4.4 正规表达式到有限自动机构造示例
2.5 词法分析器的自动生成
习题二
第三章 语法分析
3.1 文法和语言
3.1.1 文法和语言的基本概念
3.1.2 形式语言分类
3.1.3 正规表达式与上下文无关文法
3.2 推导与语法树
3.2.1 推导与短语
3.2.2 语法树与二义性
3.3 自顶向下的语法分析
3.3.1 递归下降分析法
3.3.2 LL1分析法
3.4 自底向上的语法分析
3.4.1 自底向上分析原理
3.4.2 算符优先分析法
3.5 规范归约的自底向上语法分析方法
3.5.1 LR分析器的工作原理
3.5.2 LR0分析器
3.5.3 SLR1分析器
3.5.4 LR1分析器
3.5.5 LALR分析器
3.5.6 二义文法的应用
3.5.7 LR分析器应用与拓展
习题三
第四章 语义分析和中间代码生成
4.1 概述
4.1.1 语义分析的概念
4.1.2 语法制导翻译方法
4.2 属性文法
4.2.1 文法的属性
4.2.2 属性文法
4.3 几种常见的中间语言
4.3.1 抽象语法树
4.3.2 逆波兰表示法
4.3.3 三地址代码
4.4 表达式及赋值语句的翻译
4.4.1 简单算术表达式和赋值语句的翻译
4.4.2 布尔表达式的翻译
4.5 控制语句的翻译
4.5.1 条件语句if的翻译
4.5.2 条件循环语句while的翻译
4.5.3 三种基本控制结构的翻译
4.5.4 多分支控制语句case的翻译
4.5.5 语句标号和转移语句的翻译
4.6 数组元素的翻译
4.6.1 数组元素的地址计算及中间代码形式
4.6.2 赋值语句中数组元素的翻译
4.6.3 数组元素翻译示例
4.7 过程或函数调用语句的翻译
4.7.1 过程或函数调用的方法
4.7.2 过程或函数调用语句的四元式生成
4.8 说明语句的翻译
4.8.1 变量说明的翻译
4.8.2 数组说明的翻译
4.9 递归下降语法制导翻译方法简介
习题四
第五章 代码优化
5.1 局部优化
5.1.1 基本块的划分方法
5.1.2 基本块的DAG方法
5.1.3 用DAG进行基本块的优化处理
5.1.4 DAG构造算法的进一步讨论
5.2 循环优化
5.2.1 程序流图与循环
5.2.2 循环的查找
5.2.3 循环优化
*5.3 全局优化概述
5.3.1 到达一定值与引用一定值链
5.3.2 定值一引用链du链
5.3.3 写传播
*5.4 代码优化示例
习题五
第六章 目标程序运行时存储空间的组织
6.1 静态存储分配
6.2 简单的栈式存储分配
6.2.1 栈式存储分配与活动记录
6.2.2 过程的执行
6.3 嵌套过程语言的栈式实现
6.3.1 嵌套层次显示DISPLAY表和活动记录
6.3.2 嵌套过程的执行
6.3.3 访问非局部名的另一种实现方法
6.4 堆式动态存储分配
6.4.1 堆式存储的概念
6.4.2 堆式存储的管理方法
*6.5 参数传递补遗
6.5.1 参数传递的方法
6.5.2 不同参数传递方法比较
习题六
第七章 目标代码生成
7.1 简单代码生成器
7.1.1 待用信息与活跃信息
7.1.2 代码生成算法
7.1.3 寄存器分配
7.1.4 源程序到目标代码生成示例
*7.2 汇编指令到机器代码翻译概述
习题七
第八章 符号表与错误处理
8.1 符号表
8.1.1 符号表的作用
8.1.2 符号表的组织
8.1.3 分程序结构语言符号表建立
8.1.4 非分程序结构语言符号表建立
8.1.5 常用符号表结构
8.1.6 符号表内容
8.2 错误处理
8.2.1 语法错误校正
8.2.2 语义错误校正
习题八
附录1 80868088指令码汇总表
附录2 80868088指令编码空间表
参考文献
|
|