图书目录

目    录

第1章  预备知识 1

1.1  基本内容 1

1.1.1  程序设计语言与程序的翻译 1

1.1.2  程序设计语言语法的描述 1

1.1.3  程序的执行 2

1.2  基本题 2

1.2.1  填空题 2

1.2.2  单项选择题 3

1.3  习题解析 3

第2章  编译程序概述 5

2.1  基本内容 5

2.1.1  程序的翻译 5

2.1.2  编译程序的组成 6

2.2  基本题 8

2.2.1  填空题 8

2.2.2  单项选择题 8

2.3  习题解析 13

第3章  文法和语言的形式定义 15

3.1  基本内容 15

3.1.1  符号串和符号串集合 15

3.1.2  文法和文法的分类 16

3.1.3  语言的形式定义 17

3.1.4  与语法分析有关的概念 18

3.1.5  语法树和二义性 18

3.1.6  文法的实用限制和文法变换 19

3.2  基本题 20

3.2.1  填空题 20

3.2.2  单项选择题 22

3.3  习题解析 30

3.3.1  文法、语言的形式定义 30

3.3.2  短语、直接短语(简单短语)、句柄 33

3.3.3  文法的递归 36

3.3.4  文法描述的语言和语言文法的构造 38

3.3.5  文法的分类 44

3.3.6  规范推导与规范归约 47

3.3.7  语法树与二义性 49

3.3.8  文法变换 52

第4章  词法分析与有穷自动机 54

4.1  基本内容 54

4.1.1  词法分析程序的任务 54

4.1.2  状态转换图 54

4.1.3  正规表达式和有穷自动机 55

4.1.4  词法分析程序的设计 59

4.2  基本题 60

4.2.1  填空题 60

4.2.2  单项选择题 60

4.3  习题解析 62

4.3.1  词法分析 62

4.3.2  正规表达式的构造 62

4.3.3  正规文法的构造 66

4.3.4  DFA的构造 71

第5章  自上而下语法分析 103

5.1  基本内容 103

5.1.1  自上而下语法分析 103

5.1.2  递归子程序法 104

5.1.3   LL(1)方法(预测分析方法) 106

5.2  基本题 107

5.2.1  填空题 107

5.2.2  单项选择题 107

5.3  习题解析 111

5.3.1  自上而下语法分析 111

5.3.2  递归子程序法 114

5.3.3  LL(1)分析法 116

第6章  自下而上语法分析 125

6.1  基本内容 125

6.1.1  自下而上语法分析概述 125

6.1.2  简单优先分析算法 126

6.1.3  算符优先分析算法 128

6.1.4  LR(k)分析程序 130

6.1.5  LR(0)分析表的构造 131

6.1.6  SLR(1)分析表的构造 134

6.1.7  LR(1)分析表的构造 134

6.1.8  LALR(1)分析表 136

6.2  基本题 136

6.2.1  填空题 136

6.2.2  单项选择题 136

6.3  习题解析 143

6.3.1  优先分析方法 143

6.3.2  LR(k)分析方法 160

第7章  语法制导翻译 200

7.1  基本内容 200

7.1.1  语义分析概述 200

7.1.2  中间语言 200

7.1.3  目标代码结构的设计 202

7.1.4  语法制导翻译 203

7.2  基本题 205

7.2.1  填空题 205

7.2.2  单项选择题 206

7.3  习题解析 212

7.3.1  中间语言 212

7.3.2  语法制导翻译 218

第8章  符号表 237

8.1  基本内容 237

8.1.1  符号表的作用与生存期 237

8.1.2  符号表的内容 237

8.1.3  符号表的数据结构与符号表的组织 238

8.1.4  符号表的结构与符号表的操作 238

8.1.5  FORTRAN的符号表 239

8.1.6  PASCAL的符号表 239

8.2  基本题 240

8.2.1  填空题 240

8.2.2  单项选择题 240

8.3  习题解析 241

第9章  运行阶段的存储组织与分配 249

9.1  基本内容 249

9.1.1  概述 249

9.1.2  静态存储分配 250

9.1.3  动态存储分配 251

9.1.4  形实参数结合 256

9.1.5  关于本章的学习 256

9.2  基本题 257

9.2.1  填空题 257

9.2.2  单项选择题 257

9.3  习题解析 261

9.3.1  存储分配 261

9.3.2  参数传递 270

第10章  代码优化 286

10.1  基本内容 286

10.1.1  优化的原则 286

10.1.2  代码优化的基本方法 286

10.1.3  基本块内的局部优化 286

10.1.4  循环优化 290

10.1.5  窥孔优化 292

10.2  基本题 293

10.2.1  填空题 293

10.2.2  单项选择题 293

10.3  习题解析 294

第11章  代码生成 309

11.1  基本内容 309

11.1.1  概述 309

11.1.2  PL/0抽象机 309

11.2  基本题 310

11.2.1  填空题 310

11.2.2  单项选择题 311

11.3  习题解析 313

第12章  错误的检测与处理 315

12.1  基本内容 315

12.1.1  错误的种类 315

12.1.2  对错误的处理方法 315

12.1.3  词法分析阶段的错误检测与处理 315

12.1.4  语法分析阶段的错误检测与处理 316

12.1.5  语义错误的检测与处理 316

12.2  基本题 317

12.2.1  填空题 317

12.2.2  单项选择题 317

第13章  综合题 319

13.1  基本题 319

13.2  习题解析 324

参考文献 337