《编译方法》PDF下载

  • 购买积分:8 如何计算积分?
  • 作  者:阎天民等编
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:1989
  • ISBN:7560600980
  • 页数:149 页
图书介绍:

目 录 1

第一章绪论 1

1.1什么是编译方法 1

1.2编译的基本过程 2

1.3编译程序的基本结构 7

1.3.1编译程序的基本组成 7

1.3.2以语法分析程序为主导的编译方法 8

1.4学习编译方法的目的与方法 10

习题 10

第二章词法分析程序 11

2.1词法的简单描述 11

2.1.1术语解释 11

2.1.2正则表达式 11

2.1.3状态转换图 13

2.2词法分析程序的设计 15

2.2.2超前搜索了程序 16

2.2.1读有效字符和预处理 16

2.2.3读单词子程序 19

2.2.4读数子程序 20

2.3 自动产生词法分析程序 20

2.3.1有限状态自动机的表示 20

方法 20

2.3.2从正则表达式到有限状态 22

自动机 22

方法 27

2.3.3词法分析程序的自动产生 27

习题 29

3.3优先数法 29

第三章语法分析 30

3.1语法分析方法简介 30

3.1.1上下文无关文法 30

3.1.2自上向下推导 32

3.1.3 自下向上归约 33

3.2算符优先法 34

3.2.2算符优先法的分析过程 35

3.2.1算符优先表 35

3.3.1优先函数 39

3.3.2优先数法的分析过程 40

3.4递归子程序法 40

3.4.1什么是递归子程序 40

3.4.2如何编制递归子程序 41

3.4.3左递归的消除 43

3.4.4消除回溯和提取左因子 44

3.4.5递归子程序法的分析过程 44

3.5状态矩阵法 48

3.5.1什么是状态矩阵 49

3.5.2状态矩阵的构造 50

3.5.3状态矩阵法的分析处理 52

过程 52

3.6语法分析程序自动产生概述 53

3.6.1 LR分析器 53

3.6.2分析器产生器 56

习题 59

第四章语义处理和中间代码生成 61

4.1以语法分析为主导的语义处理 61

4.2中间代码的形式 61

4.2.1逆波兰表示法 62

4.2.2三元式 63

4.2.3 四元式 63

4.3.1算术表达式的中间代码 64

代码 64

4.3表达式和赋值语句的中间 64

4.3.2布尔表达式的中间代码 65

4.3.3赋值语句中间代码 67

4.4控制语句中间代码 68

4.4.1标号与转移语句 68

4.4.2条件语句 70

4.4.3循环语句 71

4.4.4分叉语句 72

4.5 数组元素 73

4.5.2数组元素的地址计算 74

4.5.1数组元素的存储方式 74

4.5.3数组元素引用的中间代码 75

4.6说明语句 76

4.6.1数组说明语句 76

4.6.2记录说明 78

4.7过程说明和过程调用 78

习题 80

第五章符号表 82

5.1符号表的内容 82

5.2分程序结构的符号表 83

习题 85

第六章存储分配 87

6.1数据区 87

6.2.1简单变量的存储分配 88

6.2.2数组的存储分配 88

6.2各类数据的存储分配 88

6.2.3字符串的存储分配 89

6.2.4记录结构的存储分配 89

6.3静态存储分配——FORTRAN 90

存储分配 90

6.3.1 FORTRAN的数据区 90

6.3.2对临时变量的存储分配 91

存储分配 94

6.3.3对公用元素和等价元素的 94

6.4简单栈式存储分配 101

6.4.1活动记录 102

64.2过程调用和返回的实现 103

6.4.3分配数组空间 103

6.5嵌套过程语言的栈式存 104

储分配 104

6.5.1嵌套层次显示表DISPLAY 104

和活动记录 104

6.5.3参数传递 105

6.5.2过程调用和返回的实现 105

6.6 ALGOL语言存储分配的实现 107

6.6.1处理分程序 107

6.6.2分程序进人和退出 107

6.6.3过程调用、进入和返回 108

6.6.4换名参数的处理 110

习题 111

7.1基本块的优化 113

第七章优化简介和目标代码生成 113

7.2循环优化 115

7.3目标代码生成 119

7.4寄存器分配 120

习题 121

第八章错误处理 123

8.1错误处理概述 123

8.1.1语法错误和语义错误 123

8.1.2错误处理程序 124

8.2.2 自顶向下分析中的语法错误校正 125

8.2错误校正 125

8.2.1词法错误校正 125

8.2.3语义错误的校正 127

习题 128

第九章编译程序实例 129

9.1 PASCAL子集编译程序简例 129

9.1.1 PASCAL语言子集的文法 129

和编译方案 129

9.1.2词法分析 130

9.1.3语法分析和语义处理 132

9.2 FORTRAN 4编译程序实例 137

9.2.1总体设计时需考虑确定的 137

几个问题 137

9.2.2总控程序 143

9.2.3部分语法单位的语义处理 145

9.2.4连接装配程序 147

参考文献 149