编者的话 1
前言 1
第1章编译概述 1
1.1主要内容 1
1.1.1计算机的语言层次 1
1.1.2翻译程序 1
1.1.3编译的阶段 1
目 录 1
1.1.4编译的遍(趟) 2
1.1.5本章重点 3
1.2例题解析 3
1.3习题 4
1.4习题参考答案 5
2.1.1基础概念 6
2.1.2文法的形式定义及相关概念 6
2.1主要内容 6
第2章文法和语言 6
2.1.3文法、语言的分类 8
2.1.4本章重点 8
2.2例题解析 9
2.3习题 13
2.4习题参考答案 14
第3章词法分析 18
3.1主要内容 18
3.1.1词法分析的任务 18
3.1.2单词的种类与机内表示方法 18
3.1.3单词的描述 19
3.1.4 E规文法、正规式、NFA、DFA之间的等价变换 20
3.1.5词法分析器的设计 22
3.2例题解析 23
3.1.7本章重点 23
3.1.6词法分析器的设计技术 23
3.3习题 33
3.4习题参考答案 36
第4章语法分析 45
4.1 主要内容 45
4.1.1语法分析的任务 45
4.1.2自项向下分析法 45
4.1.3自底向上分析法 48
4.1.4本章重点 58
4.2例题解析 59
4.3习题 73
4.4习题参考答案 78
5.1.3中间代码的形式 102
5.1.2语法制导翻译的基本思想 102
5.1.1语法制导翻译的任务 102
5.1主要内容 102
第5章语法制导翻译技术 102
5.1.4属性文法 103
5.1.5各种典型语法成分的翻译要点 104
5.1.6本章重点 108
5.2例题解析 108
5.3习题 116
5.4习题参考答案 117
第6章符号表 122
6.1主要内容 122
6.1.1符号表的作用 122
6.1.2符号表的建立 122
6.1.3符号表的内容 122
6.1.4符号表的组织 122
6.2例题解析 125
6.1.5符号表的管理 125
6.1.6本章重点 125
6.3习题 128
6.4习题参考答案 129
第7章运行时存储空间组织 131
7.1主要内容 131
7.1.1运行时存储器的划分 131
7.1.2数据空间的分配策略 131
7.1.3简单程序设计语言的栈式存储分配 132
7.1.4嵌套过程语言的栈式实现 132
7.1.5过程调用、进入、返回 133
7.1.6本章重点 135
7.2例题解析 135
7.3习题 139
7.4习题参考答案 141
8.1.1局部优化 146
第8章代码优化 146
8.1主要内容 146
8.1.2循环优化 149
8.1.3本章重点 149
8.2例题解析 149
8.3习题 156
8.4习题参考答案 158
第9章目标代码生成 163
9.1主要内容 163
9.1.1目标代码 163
9.1.2目标机器模型 163
9.1.3一个简单的代码生成器 164
9.1.4本章重点 166
9.2例题解析 166
9.3习题 168
9.4习题参考答案 169
附录 172
附录A S语言说明 172
A.1字符集的定义 172
A.2单词集的定义 172
A.3数据类型定义 172
A.4表达式定义 172
A.5语句定义 173
A.6程序定义 173
A.7源程序书写格式的规定 173
附录B S语言词法分析程序 174
B.1任务 174
B.2要求 174
B.3数据结构 175
B.4程序参考结构及模块说明 176
附录C S语言语法/语义分析程序 179
C.1任务 179
C.2要求 179
C.3数据结构 180
C.4程序参考结构及模块说明 180
附录D S语言目标代码生成程序 192
D.1任务 192
D.2要求 192
D.3数据结构 193
D.4程序参考结构 193
D.5寄存器分配策略 194
D.6代码生成器的模块结构及说明 194
附录E S语言编译程序清单 196
参考文献 236