形式语言与自动机理论是计算机科学与技术专业的一门重要课程。本书是作者结合其20余年来在大学讲授该门课程的经验和体会,选择和组织有关内容撰写而成。不仅含有有关正则语言、上下文无关语言的文法、识别模型及其性质、图灵机的基本知识,更涉及到本学科方法论中所包含的3个学科形态。其内容特点是抽象和形式化,既有严格的理论证明,又具有很强的构造性,从而培养学生的形式化描述和抽象思维能力,使学生了解和初步掌握“问题、形式化、自动化(计算机化)”的解题思路。为了便于学生对内容的掌握,附录A还给出了建议的教学设计。
本书配套出版有《形式语言与自动机理论教学参考书(第2版)》,归纳各章知识点,解读主要内容,解析典型习题。
本书适合作为计算机科学与技术专业的高年级本科生、研究生的教材,也可供相关专业的学生、教师和科研人员参考。
“离散数学”和“形式语言与自动机理论”是计算机科学与技术专业本科两大专业基础理论课程,这两门课程不仅为学生提供本专业的基础知识,更肩负着培养学生计算思维能力的重要任务。在形式语言与自动机理论中,按照类研究问题的描述,并研究这些描述之间的关系、变换等,从而将问题的求解从实例计算推进到类计算和模型计算,这正是计算学科所追求的,也是本学科的工作者解决问题的着眼点和方法,以及所构建的系统的最大特点和优势。随着计算学科本科生和研究生教育的不断发展,这种优势将进一步的凸现。
从2002年到2003年,作者以近20年教学积累和相应的教案为基础,辅以10余年对教育教学的思考撰写成了《形式语言与自动机理论》和配套的《形式语言与自动机理论教学参考书》,这套书出版后,受到了广大读者的欢迎,一些相识的和不相识的读者对该书给予了充分的肯定,被选作本科生和研究生教材,成为国内相应课程发行最广的教材。2004年这套书被评为北京市精品教材,并且荣获2004年北京市高等教育教学成果一等奖,2006年被评为教育部普通高等教育“十一五”国家级规划教材。
在这次修订中,又融进了近几年来作者在从事相关课程教学以及计算机科学与技术专业优秀教材建设中所获得的经验和体会。例如,进一步强调教材是写给读者的,不是写给自己的。而且强调教材的写作特征,认为在这些读者中,首先是写给学生,要考虑他们是初学者,不同类型的学生有不同的关注点,更需要强调用词和描述的准确性、一致性,语言表达的清晰性和叙述的完整性,杜绝陌生名词的突然出现和使用;其次是教师,面对他们,要考虑对现代教育思想的体现和课程的容量;第三是普通的读者,需要通俗易懂,可以提供一些问题的查阅。考虑到作为理论基础性课程教学所确定的内容的稳定性和相应课程关于人才培养的实际需要,本次修订没有追求对知识点及其讲述顺序的调整,主要是进一步提高其可读性、系统性、严密性,特别对一些不太容易掌握含义的地方做了更清楚、更确切的描述,进一步提高了可理解性。
我们必须承认,本课程的基本内容高度抽象,虽然在写作中按照理工科人才培养的实际需要,强调了构造、等价变化等设计形态的内容,但是与其他的课程相比,也难免有一些难度。如何更好地解决这些问题,我们渴望读者能够给出宝贵的建议。另外,书中难免有这样或那样的错误,也恳请读者不吝赐教。联系地址: jiangzl@bjut.edu.cn。
作者
2007年4月
第1章绪论1
1.1集合的基础知识2
1.1.1集合及其表示2
1.1.2集合之间的关系5
1.1.3集合的运算6
1.2关系12
1.2.1二元关系12
1.2.2等价关系与等价类13
1.2.3关系的合成14
1.2.4递归定义与归纳证明15
1.2.5关系的闭包18
1.3图19
1.3.1无向图19
1.3.2有向图21
1.3.3树23
1.4语言24
1.4.1什么是语言24
1.4.2形式语言与自动机理论的产生与作用25
1.4.3基本概念28
1.5小结35
习题35
第2章文法42
2.1启示43
2.2形式定义48
2.3文法的构造58
2.4文法的乔姆斯基体系68
2.5空语句79
2.6小结82
习题82
第3章有穷状态自动机86
3.1语言的识别86
3.2有穷状态自动机89
3.3不确定的有穷状态自动机102
3.3.1作为对DFA的修改102
3.3.2NFA的形式定义104
3.3.3NFA与DFA等价106
3.4带空移动的有穷状态自动机110
3.5FA是正则语言的识别器115
3.5.1FA与右线性文法115
3.5.2FA与左线性文法120
3.6FA的一些变形122
3.6.1双向有穷状态自动机122
3.6.2带输出的FA123
3.7小结125
习题126
第4章正则表达式131
4.1启示131
4.2正则表达式的形式定义133
4.3正则表达式与FA等价135
4.3.1正则表达式到FA的等价变换135
4.3.2正则语言可以用正则表达式表示144
4.4正则语言等价模型的总结150
4.5小结152
习题153
第5章正则语言的性质156
5.1正则语言的泵引理156
5.2正则语言的封闭性162
5.3MyhillNerode 定理与DFA的极小化170
5.3.1MyhillNerode 定理170
5.3.2DFA的极小化180
5.4关于正则语言的判定算法189
5.5小结190
习题191
第6章上下文无关语言194
6.1上下文无关文法195
6.1.1上下文无关文法的派生树195
6.1.2二义性202
6.1.3自顶向下的分析和自底向上的分析205
6.2上下文无关文法的化简207
6.2.1去无用符号208
6.2.2去ε产生式212
6.2.3去单一产生式组216
6.3乔姆斯基范式219
6.4格雷巴赫范式223
6.5自嵌套文法229
6.6小结230
习题230
第7章下推自动机235
7.1基本定义235
7.2PDA与CFG等价242
7.2.1PDA用空栈接受和用终止状态接受等价243
7.2.2PDA与CFG等价246
7.3小结257
习题257
第8章上下文无关语言的性质260
8.1上下文无关语言的泵引理260
8.2上下文无关语言的封闭性267
8.3上下文无关语言的判定算法273
8.3.1L空否的判定273
8.3.2L是否有穷的判定274
8.3.3x是否为L的句子的判定276
8.4小结278
习题278
第9章图灵机280
9.1基本概念281
9.1.1基本图灵机282
9.1.2图灵机作为非负整函数的计算模型289
9.1.3图灵机的构造293
9.2图灵机的变形300
9.2.1双向无穷带图灵机300
9.2.2多带图灵机304
9.2.3不确定的图灵机306
9.2.4多维图灵机308
9.2.5其他图灵机310
9.3通用图灵机313
9.4几个相关的概念315
9.4.1可计算性315
9.4.2P与NP相关问题316
9.5小结316
习题317
第10章上下文有关语言320
10.1图灵机与短语结构文法的等价性320
10.2线性有界自动机及其与上下文有关文法的等价性323
10.3小结325
习题325
附录A教学设计327
附录B缩写符号338
词汇索引340
参考文献348