第一章 引论 1
第一节 什么叫编译程序 1
第二节 程序设计语言的定义 3
第三节 编译程序的组成 5
第四节 三遍扫描的编译程序和装配程序工作简述 9
第二章 词法分析——识别单词 12
第一节 读字符 12
第二节 直接法读单词程序RWORD 14
第三节 经过RWORD得到什么信息 17
第四节 状态表法读单词程序RWORD 18
第三章 中间语言 27
第一节 波兰表示 27
第二节 四元组 30
第三节 三元组和间接一元组 32
第四章 三元式表示 34
第四章 语法分析之一:状态矩阵法 39
第一节 状态矩阵设计的基本思想 39
第二节 状态表的逻辑表示 41
第三节 状态表的结构表示与执行过程 45
第四节 语义加工与中间语言的生成 46
第五节 循环语句的处理 59
第五章 语法分析之二:递归子程序法 61
第一节 了程序的分类与特点 61
第二节 ALGOL、PASCAL程序、分程序、复合语句的翻译 63
第三节 表达式的翻译 64
第四节 动态存储分配 67
第五节 递归子程序法与状态矩阵法的比较 69
第六章 说明语句的处理 72
第一节 类型语句与SD字典 72
第二节 维语句与FAD字典 73
第三节 公用语句与等价语句(一) 74
第四节 相对地址分配 80
第五节 公用语句与等价语句(二) 85
第七章 I/O语句与格式句的处理 90
第一节 FORTRAN语言文本的规定 90
第二节 操作系统提供使用外投的方式 91
第三节 I/O语句的编译处理 92
第四节 格式语句的处理 94
第八章 优化 99
第一节 概述 99
第二节 基本块的定义 101
第三节 表达式优化 102
第四节 循环优化的准备 108
第五节 循环优化 111
第九章 半目标模块的生成 116
第一节 半目标模块的总体结构 116
第二节 半目标指令与地址种属 120
第三节 半目标模块的生成步骤 121
第四节 段头语句、调用语句、返回语句的处理 122
第五节 哑实结合的目标结构 123
第六节 表达式半目标指令的生成 127
第七节 控制语句的处理 130
第八节 其他语句的处理 134
第十章 装配程序 136
第一节 装配程序的任务和工作过程 136
第二节 布尔矩阵的建立 137
第三节 程序级次的确定 143
第四节 局部量的静态存贮分配 145
第五节 外部过程的连接与半目标指令重定位代真 148
第十一章 内存空间整体布局及其他 152
第一节 内存空间的组织 152
第二节 表格处理 154
第三节 编译自定义语句(命令) 155