文法
一些基本概念:{
字母表:规定一组非空符号集合;
符号:字母表中的元素;
符号串:符号组成的有穷序列;
空符号串:用ε表示空符号串;
|符号串| = 符号串的长度;
x=ab,y=cd,则x+y=abcd;
符号串的幂运算:x^0=ε,x^1=xx,x^2=xx;
符号串集合的乘积运算:使用笛卡尔积的计算方式。
符号串集合的幂运算:在符号幂运算的基础上对集合进行笛卡尔积运算。
符号串集合的闭包:设有符号串集合A:{
A的正则闭包:A^+=A^1∪A^2∪A^3∪…..
A的闭包:A^*=A^+ ∪ A^0
};
形式语言:序列的集合。每个形式语言包含构造某个特定符号串集合的所有规则。反之,任意符号串集合可悲定义为一个形式语言。
产生式:一个符号可以生成某个字符串,通常,表示为有序对:(A,a)即A->a;
文法四元组:G[S] = (Vn,Vt,P,S):{
Vn为非终结符集合,Vt为终结符集合,P为产生式集合,S为根符号。
};
归约和推导:推导是指文法能够推导出特定的符号串;归约是指符号串可被归约为某个文法;
句型和句子:{
预设文法G[S]=(Vn,Vt,P,S),若:
S^* => α,α∈V^*,则称α为文法G的句型;
S^+=> α,α∈Vt^*,则称α为文法G的句子。
其中,
V = Vt ∪ Vn;
};
语言:文法G[S]所产生的所有句子的集合,称为文法G[S]所定义的语言,几位L(G[S])。
规范推导和规范归约:{
对于直接推导xAy => xβy,若y为终结符号串或空符号串,则此种推导称为规范推导(最右推导);与其对应的归约称为规范归约(最左规约),记为:xAy =r=>xβy;规范推导
};
};
推导和语法树:{
例如,设有文法G[E]:文法G[E]
构造句型i*i+i的语法树。
首先需要建立句型的最左推导过程:
E=>E+T
=>T+T
=>T*F+T
=>F*F+T
=>i*F+T
=>i*i+T
=>i*i+F
=>i*i+i最左语法树
建立句型的最左推导过程:
E=>E+T
=>E+T*F
=>E+T*i
=>E+F*i
=>E+i*i
=>T+i*i
=>F+i*i
=>i+i*i最左语法树
可以看到,两个推导的语法树是一样的,这表示文法未出现二义性。
};
文法二义性:{
如果一个文法对于一个句型的推导有两颗不同的语法树,则该文法具有二义性。
};
递归产生式和递归文法:{
递归产生式:产生式可以生成包含自身的产生式。根据路径熟,可以分为直接递归产生式、递归产生式。
递归文法:含有递归产生式的文法称为递归文法。同理,有直接递归文法。
};
短语、句柄:{
短语:一部规约或者多步归约。
直接短语:一部归约。
句柄:最左边的、一步规约。短语、句柄
};
子树:{
语法树的某一节点及其分支组成的部分。子树
Ext.简单子树:语法树的简单子树是指只有单层分支的子树(子树深度为2)。简单子树
};
def:给定一个文法G,能从结构上唯一确定其语言。
def:给定一个语言L,可以确定一个文法,但其文法并不唯一。
同理,如果两个文法描述的是同一个语言,则两个文法等价。
文法:文法又称为语法。语言的文法是产生语句(该语言的句子)的规则。这种规则包含词法规则和语法规则。
词法:描述单词符号的构成规则。
语法:描述语言语法描述语言语法单位的构成规则称为语法规则。
文法有四种类型:{
1.正规文法,又称3型文法,用于描述词法:{
产生式右部 = "一个非终结符+一个终结符"且 仅满足两种线性的一种。
若文法G=(VN,VT, P, S)中的每一条规则的形式为A ->αB 或 A -> α , 其中:
A , B∈VN, α ∈VT*, 则称G是右线性文法。
若文法G=(VN,VT, P, S)中的每一条规则的形式为A ®B α 或 A ® α , 其中:
A , BÎVN , α ÎVT*, 则称G是左线性文法。
正则文法较为固定,用于产生单词。对应有限状态自动机。
在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。
};
2.上下文无关文法:又称2型文法,用于描述语法:{
若文法G=(VN,VT, P, S)中的每一条规则的形式为 A ®β , 其中:
AÎVN ,βÎ(VN∪VT)*
则称G是2型文法,对应于下推自动机。
“所有的产生式左边只有一个非终结符”
或 “2型文法是在1型文法的基础上,再满足:每一个α→β都有α是非终结符”
只要找到符合产生式右边的串,就可以把它归约为对应的非终结符。
};
3.上下文有关文法,又称为1型文法:{
若文法G=(VN,VT, P, S)中的每一条规则的形式为 αAβ®αμβ , 其中:
AÎVN ,α, βÎ(VN∪VT)* ,μÎ(VN∪VT)+
则称G是1型文法,该文法在0型文法的基础上每一个α→β,都有|β|>=|α|。。
此文法对应于线性有界自动机。
如果产生式的左部不止有一个符号,则匹配产生式时,
必须保证待匹配的符号要有正确的上下文以匹配不止一个符号的左部。
};
4.无限制文法,又称为0型文法、短语文法:{
若文法G=(VN,VT, P, S)中的每一条规则的形式为α→β符合以下结构:、
α,β∈(VN∪VT)*
而且α若文法G=(VN,VT, P, S)中的每一条规则的形式为中至少包含一个非终结符,则G为0型文法。
0型文法的能力相当于图灵机。
任何0型文语言都是递归可枚举的;递归可枚举集必定是一个0型语言。
};
额外引用:{
《什么是0型文法,1型文法,2型文法,3型文法?》
[https://www.iteye.com/topic/593981]
《应该如何理解「上下文无关文法」?》
[https://www.zhihu.com/question/21833944/answer/40689967]
};
};
作业不一定对,因为我没有参考答案....
作业1
作业2
作业3