第二讲
2-1
字母表
是一个有穷符号集合
如二进制字母表:{0,1}
字母表的运算
两个表的乘积:{0,1}{a,b}={0a,0b,1a,1b}
字母表的n次幂:长度为n的符号串构成的集合
字母表的正闭包:长度正数的符号串构成的集合
字母表的克林闭包:任意符号串(长度可以为零)构成的集合
串S
字母表的克林闭包的每一个元素都为字母表上的一个串
串的运算
连接运算
串的n次幂:s=ba 则s^0 =ε, s^2=baba
2-2
文法
符号约定
文法符号:终结符或者非终结符
文法符号串包括空串
ε既不是终结符也不是非终结符,但是可以作为终结符使用
2-3
直接推导
用产生式的右部替换产生式的左部
归约
产生式的左部替换产生式的右部
归约是推导的逆过程
已知文法,如何判定某一词串是否是该语言的句子
句子的推导(派生):从生成语言的角度
句子的归约:从识别语言的角度
句型 α 和句子 w
句型本身是一个文法符号串
语言 L(G)
语言:所有的句子构成的集合,而不是句型
文法解决了无穷语言的有穷表达问题
语言是一类符号,比如标识符
2-4 文法类型
0型文法 PSG
1型文法 CSG
2型文法 CFG
左部必须是非终结符
3型文法 RG
右线性文法:产生式右部是终结符号串或者终结符号串右边加上一个非终结符
四者关系
2-5
注意叶节点的标号也可以是非终结符
对于推导过程中得到的每一个句型ai,都可以构造出一个边缘为ai的分析树
短语|直接短语
产生式右部不一定在每个分析树中出现
文法的二义性
所以要想办法消除二义性