第1章 语言与文法 1
1.1 语言 2
1.1.1 什么是语言 2
1.1.2 形式语言与自动机理论的产生 2
1.1.3 基本概念 3
1.2 文法 9
1.3 文法的构造 18
1.4 文法的乔姆斯基体系 26
1.5 空语句 36
1.6 小结 38
习题 38
第2章 有穷状态自动机 44
2.1 语言的识别 44
2.2 有穷状态自动机 46
2.3 不确定的有穷状态自动机 57
2.3.1 作为对DFA的修改 57
2.3.2 NFA的形式定义 58
2.3.3 NFA与DFA等价 60
2.4 带空移动的有穷状态自动机 64
2.5 FA是正则语言的识别器 68
2.5.1 FA与右线性文法 68
2.5.2 FA与左线性文法 72
2.6 FA的一些变形 73
2.6.1 双向有穷状态自动机 74
2.6.2 带输出的FA 75
2.7 小结 76
习题 77
第3章 正则表达式 82
3.1 启示 82
3.2 正则表达式的形式定义 83
3.3 正则表达式与FA等价 85
3.3.1 正则表达式到FA的等价变换 85
3.3.2 正则语言可以用正则表达式表示 93
3.4 正则语言等价模型的总结 98
3.5 小结 100
习题 100
第4章 正则语言的性质 103
4.1 正则语言的泵引理 103
4.2 正则语言的封闭性 108
4.3 Myhill-Nerode定理与DFA的极小化 114
4.3.1 Myhill-Nerode定理 114
4.3.2 DFA的极小化 122
4.4 关于正则语言的判定算法 130
4.5 小结 131
习题 132
第5章 上下文无关语言 134
5.1 上下文无关文法 134
5.1.1 上下文无关文法的派生树 135
5.1.2 二义性 140
5.1.3 自顶向下的分析和自底向上的分析 143
5.2 上下文无关文法的化简 145
5.2.1 去无用符号 146
5.2.2 去ε-产生式 149
5.2.3 去单一产生式组 152
5.3 乔姆斯基范式 155
5.4 格雷巴赫范式 158
5.5 自嵌套文法 163
5.6 小结 164
习题 164
第6章 下推自动机 168
6.1 基本定义 168
6.2 PDA与CFG等价 174
6.2.1 PDA用空栈接受和用终止状态接受等价 174
6.2.2 PDA与CFG等价 177
6.3 小结 186
习题 186
第7章 上下文无关语言的性质 189
7.1 上下文无关语言的泵引理 189
7.2 上下文无关语言的封闭性 195
7.3 上下文无关语言的判定算法 200
7.3.1 L空否的判定 200
7.3.2 L是否有穷的判定 201
7.3.3 x是否为L的句子的判定 202
7.4 小结 204
习题 204
第8章 图灵机 205
8.1 基本概念 206
8.1.1 基本图灵机 206
8.1.2 图灵机作为非负整函数的计算模型 213
8.1.3 图灵机的构造 215
8.2 图灵机的变形 221
8.2.1 双向无穷带图灵机 221
8.2.2 多带图灵机 224
8.2.3 不确定的图灵机 226
8.2.4 多维图灵机 227
8.2.5 其他图灵机 229
8.3 通用图灵机 231
8.4 几个相关的概念 233
8.4.1 可计算性 233
8.4.2 P与NP相关问题 233
8.5 小结 234
习题 234
第9章 上下文有关语言 237
9.1 图灵机与短语结构文法的等价性 237
9.2 线性有界自动机及其与上下文有关文法的等价性 240
9.3 小结 241
习题 241
附录 缩写符号 243
词汇索引 245
参考文献 251