目录 1
第1章 预备知识 1
1.1 集合及其运算 1
1.2 关系 3
1.2.1 二元关系 3
1.2.2 等价关系 3
1.2.3 关系的合成 4
1.3 证明和证明的方法 5
1.3.1 反证法 5
1.3.2 归纳法 6
1.3.3 递归的定义与归纳证明 6
1.4 图与树 7
1.5 语言 8
1.6 常用术语 8
1.7 形式语言与自动机的发展 11
习题 13
第2章 文法及语言 15
2.1 例子语言 15
2.2 文法和语言的关系 19
2.3 Chomsky对文法的分类 21
2.4 文法产生语言 24
习题 33
第3章 上下文无关文法与上下文无关语言 35
3.1 消除无关文法中的无用非终结符号 36
3.2 推广的化简上下文无关文法 40
3.3 推导树 41
3.4 空串定理 43
3.5 无关语言的泵浦(Pumping)定理 44
3.6 短语 48
3.7 形式语言与高级计算机程序设计语言 49
3.8 形式语言与自然语言 52
3.9 基本的语法分析方法 53
3.10 消除左递归 54
3.10.1 消除直接左递归 54
3.10.2 消除间接左递归 55
3.11 上下文无关文法的另一种表示 56
习题 57
第4章 Chomsky文法体系及语言之间的运算 61
4.1 Chomsky的文法体系 61
4.1.1 文法的分类及文法之间的关系 61
4.1.2 语言之间的关系 63
4.2 Chomsky的文法体系的另一种描述 64
4.3 语言之间的运算及运算的封闭性 66
4.3.1 语言之间的基本运算 67
4.3.2 语言之间的运算的封闭性 67
4.3.3 语言之间的其他运算 69
4.4 正则表达式和正则集 70
习题 72
第5章 语法分析方法 73
5.1 自上而下分析法中的无回溯的递归下降分析法 73
5.1.1 回溯的产生 73
5.1.2 消除回溯 74
5.1.3 递归下降分析器的构造 75
5.2 自上而下分析法中的预测分析法 75
5.2.1 FIRST和FOLLOW集合 75
5.2.2 预测分析法对文法的要求 77
5.3 自下而上分析法中的算符优先分析法 77
5.3.1 算符优先文法 78
5.3.2 算符优先关系表 78
5.3.3 算符优先关系表的构造 79
5.3.4 算符优先分析法 82
5.4.1 规范归约 84
5.4 自下而上分析法中的LR分析法 84
5.4.2 LR分析法 85
第6章 有限状态自动机和有限状态语言 92
6.1 有限状态自动机 92
6.2 有限状态自动机识别的语言 94
6.3 有限状态自动机识别语言的例子 96
6.4 不确定的有限状态自动机 108
6.4.1 不确定的有限状态自动机 108
6.4.2 不确定的有限状态自动机转换为确定的有限状态自动机 109
6.5 带有ε动作的有限状态自动机 115
6.6 有限状态自动机的一些变形 119
6.6.1 双向的有限状态自动机 119
6.6.2 带有输出的有限状态自动机 120
6.7 有限状态接收机的存储技术 124
习题 126
7.1.1 正则表达式与有限状态自动机 129
第7章 正则语言 129
7.1 正则语言与有限状态自动机 129
7.1.2 正则语言的等价模型 140
7.2 正则语言的泵浦引理 142
7.3 正则语言对运算的封闭性 148
7.4 正则语言类中的判定算法 153
7.5 Myhill—nerode定理与有限状态自动机的极小化 154
7.5.1 Myhill—nerode定理 154
7.5.2 FSAM的极小化 165
习题 172
第8章 下推自动机和上下文无关语言 175
8.1 下推自动机 175
8.1.1 确定的下推自动机 176
8.1.2 不确定的下推自动机 178
8.1.3 下推自动机接收语言的两种方式 180
8.1.4 广义的下推自动机和单态下推自动机 182
8.1.5 下推自动机的存储技术 184
8.1.6 下推自动机扫描多个符号 186
8.2 上下文无关文法和范式 187
8.2.1 Chomsky范式 188
8.2.2 Greibach范式 189
8.3 下推自动机与上下文无关语言 190
习题 201
第9章 图灵机与语言 204
9.1 图灵机的基本模型 204
9.1.1 图灵机的定义 204
9.1.2 图灵机的构造 206
9.2 图灵机作为非负整数函数计算模型 211
9.3 图灵机的构造技术 214
9.3.1 图灵机的存储技术 214
9.3.2 图灵机的移动技术 230
9.3.3 图灵机的多道技术 231
9.3.4 图灵机的查讫技术 233
9.3.5 图灵机的子程序技术 234
9.4 图灵机变型 237
9.4.1 双向无穷带图灵机 238
9.4.2 多带多读/写头图灵机 240
9.4.3 不确定的图灵机 243
9.4.4 多维图灵机 245
9.4.5 其他图灵机 245
9.5 通用图灵机 248
9.5.1 编码的目的 248
9.5.2 编码方法 249
9.5.3 总结 251
9.6 图灵机与短语结构语言 252
9.7 线性有界的图灵机与相关语言 252
习题 252
参考文献 255