字母表是一个有穷符号集合 符号:字母、数字、标点符号、……
假设字母表用∑\sum∑表示
例如:{0,1}{a,b}={0a,0b,1a,1b}
∑0\sum0∑0={ε} (∑)n(\sum)^n(∑)n={(∑)n−1∑(\sum) ^{n-1}\sum(∑)n−1∑} 例如:{0,1}的3次方={0,1}{0,1}{0,1}={000,001,010,011,100,101,110,111} 字母表中的n次幂:长度为n的符号串构成的集合
(∑)+=∑U(∑)2U(∑)3....(\sum)^+=\sum U (\sum)^2 U(\sum)^3....(∑)+=∑U(∑)2U(∑)3.... 字母表的正闭包:长度正数的符号串构成的集合
(∑)∗=(∑)0U(∑)U(∑)2U(∑)3....(\sum)^*=(\sum)^0 U(\sum) U (\sum)^2 U(\sum)^ 3....(∑)∗=(∑)0U(∑)U(∑)2U(∑)3.... 克林闭包就是在正闭包的基础上在添加一个空串。 字母表的克林闭包:任意符号串(长度可以为0)构成的集合。
串是字母表中符号的一个有穷序列。
|s|,是指s中符号的个数。|ε|=0。 设x,y,z是三个字符串,如果x=yz;则称y是x的前缀,z是x的后缀
串s的幂运算
s0=εs^0=εs0=ε sn=sn−1ss^n=s^{n-1}ssn=sn−1s
例如:如果s=ba,那么s1=ba,s2=baba,s3=bababas^1=ba,s^2=baba,s^3=bababas1=ba,s2=baba,s3=bababa…… 串s的n次幂:将n个s连接起来。
四元组:G=(VT,VN,P,S)G=(V_T,V_N,P,S)G=(VT,VN,P,S)
终结符是文法所定义的语言的基本符号。例如:在英语的句子中,终结符就是一个一个的单词。
非终结符是用来表示语法成分的符号,有时也称为“语法变量” 注意: 终结符集合与非终结符符集合的交集为空集。 终结符集合与非终结符符集合的并集为文法符号集
产生式描述了将终结符和非终结符组合成串的方法。
产生式的一般形式:α->β;读作:α定义为β
α∈(VTUVN)+α∈(V_TUV_N)^+α∈(VTUVN)+,且α中至少包含VnV_nVn中的一个元素,称为产生式的左部
β∈(VTUVN)∗β∈(V_TUV_N)^*β∈(VTUVN)∗:称为产生式的体或右部
S∈Vn。开始符号表示的是该文法中最大的语法成分。
对于一组由相同左部的α产生式:α->β1,α->β2,α->β3…… 可以简写为:α->β1|β2|β3…… 读作:α定义为β1,或者β2,或者β3…… β1,β2,β3……称为α的候选式
给定文法G=(VT,VN,P,S)G=(V_T,V_N,P,S)G=(VT,VN,P,S),α->β∈P 把一个字符串的α替换成β,我们把这叫做直接推导 通俗来讲就是用产生式的右部替换产生式的左部。

0步推导就是它本身
+正闭包:不包括0步推导
*克林闭包:包括0步推导
归约是推导的逆过程


L(G)就是所有句子的集合。
0、1、2、3型文法
无限制文法,对于任意一个推导式α->β,α中至少包含一个非终结符 由0型文法G生成的语言L(G)叫做0型语言。

上下文有关文法,对于任意一个推导式α->β,∣α∣<=∣β∣|α|<=|β|∣α∣<=∣β∣
该类文法中不包含空产生式ε,因为当有空产生式的时候,α的长度将大于β的长度。
由上下文有关文法(1型文法)生成的语言L(G)叫做上下文有关语言。

α必须属于终结符。 由上下文无关文法(2型文法)生成的语言L(G)叫做上下文无关语言。 A就是非终结符


w是终结符号串,A,B都是非终结符


给定一个句型,其分析树中的每一棵子树的边缘称为该句型的一个短语。 简单的来说:短语就是由子树的叶子节点构成的
如果子树只有父子两代结点,那么这棵子树的边缘称为该句型的一个直接短语。 根据树的性质:我们可以知道:直接短语一定是某产生式的右部。 但产生式的右部不一定是给定句型的直接短语。
如果一个文法可以为某个句子生成多颗分析树,则称这个文法是二义性的。