1.1 编译程序与翻译程序 1
3.4 扩展的BNF (7 1
目录 1
第一章编译程序概述 1
1.2编译程序的结构 2
1.3编译程序的书写语言与T形图 4
1.4 Pascal-T语言及其编译程序 7
习题 12
程序清单1 Pascal-T编译程序的主程序 13
第二章词法分析 32
2.1词法分析的任务 32
2.2取字符与写符号 34
2.3 扫描 36
2.4标识符与保留字 37
2.5数 41
2.6 字符串 42
2.7注解 43
2.8差错处理 44
2.9其它语言的特有问题 44
2.10词法分析程序的自动构造 45
习题 51
程序清单2 Pascal-T编译程序的词法分析程序 53
第三章文法与语言 63
3.1 形式语言 63
3.2文法的分类 66
6.2类型结构表 (1 67
3.3上下文无关文法的二义性 68
3.5 Pascal-T语言的语法 73
习题 74
第四章 自顶向下的语法分析方法 76
4.1 自顶向下分析的基本思想 76
4.2 LL(1)分析方法 80
4.3递归下降分析程序的构造 80
4.4 验证Pascal-T满足LL(1)条件 86
4.5 Pascal-T语言的分析程序 93
4.6语法差错修正 99
4.7 Pascal-T语言带语法差错修正的分析程序 101
习题 105
程序清单3 Pascal-T编译程序的语法分析程序 107
第五章作用域分析 125
5.1标识符的作用域与程序体 125
5.2标识符表 128
5.3程序体表与层次表 129
5.4Pascal-T语言的语义分析程序 133
程序清单4 Pascal-T编译程序的语义分析程序 138
第六章类型分析 166
6.1 标识符表的完整形式 166
6.3查标识符表算法的完整形式 169
6.4常量定义 170
6.5类型定义 173
6.6变量定义与形式参数定义 181
6.7语义差错修正 185
6.8表达式 186
6.9语句 196
6.1 0过程与函数 199
习题 207
第七章存贮管理 210
7.1静态存贮管理 210
7.2栈式存贮管理 212
7.3堆式存贮管理 215
习题 216
第八章代码生成 217
8.1 理想计算机概念 217
8.2 Pascal-T计算机及其解释程序 217
8.3 Pascal-T语言的代码生成程序 225
8.4表达式和变量的目标 226
8.5 语句的目标 230
8.6过程和函数的目标 235
习题 243
程序清单5 Pascal-T编译程序的代码生成程序 244
程序清单6 Pascal-T解释程序 257
第九章汇编代码生成 267
9.1 Intel 8088处理器简介 267
9.2 Pascal-T语言的汇编代码生成程序 268
9.3汇编代码生成的例子 268
9.4 目标代码优化 271
习题 274
程序清单7 Pascal-T编译程序的汇编代码生成程序 275
第十章基于自底向上语法分析技术的编译程序自动构造 285
10.1 LR分析方法 285
10.2 Yacc简介 288
10.3 用 Yacc构造PL/0编译程序 290
习题 301
第十一章编译程序构造课题 302
1 1.1 PL语言的程序示例 302
11.2 PL语言的描述 303
11.3 PL语言的语法 305
11.4课程设计的步骤和要求 306
11.5 PL语言的解释程序 307
附录一 一个用Pascal-T语言编写的源程序及其编译过程的例子 313
附录二一组用Pascal-T语言编写的用户源程序的实例 336
附录三Pascal-T编译程序(软盘)的使用说明 344
参考文献 346