万本电子书0元读

万本电子书0元读

顶部广告

编译原理与技术(第2版)电子书

  《编译原理与技术(第2版)》系统性较强,基本概念阐述清晰,通俗易懂,便于阅读,可作为普通高等院校计算机学科及相关专业的本科教材,也可供教师、研究生及有关专业人员学习和参考。

售       价:¥

纸质售价:¥28.90购买纸书

197人正在读 | 0人评论 6.2

作       者:李劲华,陈宇,丁洁玉

出  版  社:北京邮电大学出版社

出版时间:2014-02-27

字       数:22.1万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
  《编译原理与技术(第2版)》介绍了计算机高级语言编译程序的基本原理和技术,主要内容包括词法分析、语法分析、语法制导翻译的语义分析与中间代码生成、符号表与运行时存储空间的组织、代码优化以及目标代码的生成。《新编高等院校计算机科学与技术规划教材:编译原理与技术(第2版)》着重描述了编译构造的一些基础理论,如形式语言、有限自动机和属性文法。从构造编译程序的技术角度,描述了编译程序的各类算法,以及编译程序的自动构造工具,如词法分析生成器Lex和语法分析生成器YACC。 《编译原理与技术(第2版)》介绍了计算机高级语言编译程序的基本原理和技术,主要内容包括词法分析、语法分析、语法制导翻译的语义分析与中间代码生成、符号表与运行时存储空间的组织、代码优化以及目标代码的生成。《新编高等院校计算机科学与技术规划教材:编译原理与技术(第2版)》着重描述了编译构造的一些基础理论,如形式语言、有限自动机和属性文法。从构造编译程序的技术角度,描述了编译程序的各类算法,以及编译程序的自动构造工具,如词法分析生成器Lex和语法分析生成器YACC。
【推荐语】
《编译原理与技术(第2版)》系统性较强,基本概念阐述清晰,通俗易懂,便于阅读,可作为普通高等院校计算机学科及相关专业的本科教材,也可供教师、研究生及有关专业人员学习和参考。
目录展开

前言

第1章 概论

1.1 为什么学习编译

1.2 什么叫编译程序

1.3 编译过程概述

1.3.1 词法分析

1.3.2 语法分析

1.3.3 语义分析和中间代码生成

1.3.4 代码优化

1.3.5 目标代码生成

1.4 编译程序的构成

1.4.1 基本功能模块

1.4.2 符号表的组织与管理

1.4.3 错误诊断和报告

1.5 其他与编译有关的概念和技术

1.5.1 遍的概念

1.5.2 编译的前端和后端

1.5.3 编译程序的分类

1.5.4 编译技术和软件工具

1.6 如何开发编译程序

1.6.1 编译程序的自展技术

1.6.2 编译程序的移植技术

1.6.3 编译程序的自动生成技术

1.7 编译系统以及其他相关程序

练习 1

第2章 词法分析

2.1 词法分析器的设计

2.1.1 词法分析器的功能与输出

2.1.2 词法扫描器与符号表

2.1.3 词法分析器的两种实现模式

2.1.4 词法错误的处理

2.2 词法分析器的一种手工实现

2.2.1 输入的预处理

2.2.2 超前搜索和最长匹配

2.2.3 状态转换图

2.2.4 基于状态转换图的词法分析器的实现

2.3 正规表达式

2.3.1 符号、符号串与符号集合

2.3.2 正规式与正规集

2.3.3 扩展的正规式

2.4 有限自动机

2.4.1 确定的有限自动机

2.4.2 不确定的有限自动机NFA

2.4.3 从NFA到DFA的等价变换

2.4.4 DFA的最小化

2.4.5 从正规式到有限自动机

2.4.6 有限自动机在计算机中的表示

2.5 词法分析的自动生成器Lex

2.5.1 Lex概述

2.5.2 Lex的语言与实现

练习 2

第3章 程序语言的语法描述

3.1 文法和语言

3.1.1 文法的形式定义

3.1.2 推导与归约

3.1.3 分析树与语法树

3.1.4 文法产生的语言

3.1.5 语言的验证

3.1.6 语言的文法表达

3.1.7 文法的二义性

3.1.8 BNF与EBNF

3.2 文法的分类

3.2.1 0型文法

3.2.2 1型文法

3.2.3 2型文法——上下文无关文法

3.2.4 3型文法

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 语法分析的基本问题

练习 3

第4章 自顶向下的语法分析

4.1 自顶向下语法分析的一般方法

4.2 LL(1)文法及其分析

4.2.1 首符集FIRST

4.2.2 后继符集FOLLOW

4.2.3 选择集SELECT

4.2.4 LL(1)文法

4.2.5 LL(1)文法的分析

4.3 递归下降分析技术

4.3.1 递归下降分析器的设计

4.3.2 从EBNF构造递归下降分析器

4.3.3 递归下降分析的特点

4.4 预测分析技术

4.4.1 预测分析程序的工作过程

4.4.2 预测分析表的构造

4.5 LL(1)分析中的错误处理

练习 4

第5章 自底向上的语法分析

5.1 自底向上语法分析概述

5.1.1 自底向上语法分析器的体系结构

5.1.2 规范归约和算符优先归约

5.1.3 短语、句柄和最左素短语

5.2 算符优先分析方法

5.2.1 算符优先文法

5.2.2 算符优先关系的构造

5.2.3 算符优先分析算法

5.2.4 算符优先函数及其构造

5.3 LR分析方法

5.3.1 LR分析概述

5.3.2 LR(0)分析表的构造

5.3.3 SLR分析表的构造

5.3.4 规范LR分析表的构造

5.3.5 LALR分析表的构造

5.3.6 LR分析方法小结

5.4 LALR分析器的生成工具YACC

5.4.1 YACC概述

5.4. 2 YACC源程序

5.4.3 YACC解决二义性和冲突的方法

5.4.4 YACC对语法分析中的错误处理

练习 5

第6章 符号表的组织和管理

6.1 符号表的作用

6.2 符号表的主要属性及其作用

6.3 符号表的组织结构

6.3.1 符号表的整体组织结构

6.3.2 关键码域的组织

6.3.3 不等长域的组织

6.3.4 符号表的操作与符号表项的组织

6.4 名字的作用范围

6.4.1 名字的声明

6.4.2 块结构与符号表的分层次管理

6.4.3 静态作用域和动态作用域

练习 6

第7章 运行时环境

7.1 程序运行的基本概念

7.1.1 过程及其活动

7.1.2 活动记录

7.1.3 调用序列和返回序列

7.1.4 活动树

7.1.5 环境和名字的绑定

7.2 参数传递机制

7.2.1 按值调用

7.2.2 引用调用

7.2.3 值-结果调用

7.2.4 换名调用

7.3 运行时存储空间的组织和管理

7.3.1 局部数据的存放

7.3.2 运行时存储空间的划分

7.3.3 存储分配策略

7.4 静态运行时环境

7.5 栈式运行时环境

7.5.1 无过程嵌套的栈式运行时环境

7.5.2 有过程嵌套的栈式运行时环境

7.6 堆式运行时环境

7.6.1 堆式动态存储分配的实现

7.6.2 堆的自动管理

7.7 面向对象语言的运行时环境

7.7.1 面向对象语言的动态存储管理

7.7.2 Java运行时环境

练习 7

第8章 属性文法和语义分析

8.1 语义分析概况

8.2 属性与属性文法

8.2.1 属性的引入

8.2.2 属性文法的定义

8.2.3 属性文法的扩展与简化

8.3 属性的计算

8.3.1 属性依赖图和计算顺序

8.3.2 综合属性和继承属性及其计算

8.3.3 语法分析的同时计算属性

8.4 数据类型与类型检查

8.4.1 类型表达式与类型构造器

8.4.2 类型等价

8.4.3 类型检查

8.4.4 类型转换

8.4.5 类型检查的其他问题

练习 8

第9章 语法制导的中间代码翻译

9.1 中间语言

9.1.1 后缀式

9.1.2 图形表示

9.1.3 字节代码

9.1.4 三地址代码及其四元式实现

9.2 声明语句的翻译

9.2.1 过程中的声明

9.2.2 保留声明的作用域信息

9.2.3 记录中的域名

9.3 赋值语句的翻译

9.3.1 简单算术表达式及赋值语句

9.3.2 数组元素的引用

9.3.3 记录和指针的引用

9.3.4 类型转换

9.4 基本控制结构的翻译

9.4.1 布尔表达式的翻译

9.4.2 控制流语句的多趟翻译模式

9.4.3 回填技术基础

9.4.4 控制流语句的单趟翻译模式

9.5 转向语句的翻译

9.5.1 标号语句与goto语句的翻译

9.5.2 出口语句的翻译

9.5.3 开关语句的翻译

9.5.4 过程调用的翻译

练习 9

第10章 目标代码生成

10.1 代码生成器设计的基本问题

10.1.1 目标程序

10.1.2 指令选择

10.1.3 寄存器分配

10.1.4 计算顺序的选择

10.2 虚拟计算机模型

10.3 语法制导的目标代码生成

10.4 基本块和待用信息

10.4.1 基本块及其构造

10.4.2 流图

10.4.3 待用信息

10.5 一个简单代码生成器

10.5.1 寄存器和地址的描述

10.5.2 寄存器的分配原则与选择算法

10.5.3 代码生成算法

10.5.4 其他三地址语句的目标代码

练习 10

第11章 代码优化

11.1 代码优化的概念

11.2 代码优化的基本技术

11.2.1 删除公共子表达式

11.2.2 复写传播

11.2.3 删除无用代码

11.2.4 代码外提

11.2.5 强度消弱和删除归纳变量

11.3 局部优化

11.3.1 基本块的变换

11.3.2 基本块的DAG实现

11.3.3 基于DAG的局部优化

11.4 机器代码优化——窥孔技术

11.4.1 冗余存取的删除

11.4.2 不可达代码的删除

11.4.3 控制流优化

11.4.4 代数化简与强度消弱

11.4.5 特殊指令的使用

11.5 代码优化的高级技术简介

练习 11

参考文献

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部