第三章文法和语言

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L(G)={x|S =>* x,其中S为文法的开始符号,且x ∈VT*} 例:G: S→0S1, S→01 L(G)={0n1n|n≥1} 文法的等价 若L(G1)=L(G2),则称文法G1和G2是等价的。
如文法G1[A]:A→0R 与G2[S]:S→0S1 等价
A→01
S→01
R→A1
5、典型题型:
符号串的连接:设x和y是符号串,它们的连接xy是把y的符号写在x的符号之后得到的符号串. 由
于ε 的含义,显然有ε x=x ε =x。
例如 x=ST,y=abu,则它们的连接xy=STabu,看出|x|=2,|y|=3,|xy|=5 符号串的方幂符号串自身连接n次得到的符号串an 定义为 aa…aa n个a a1=a, a2=aa且a0=ε
英语--所有符合英语语法的句子的全体
程序设计语言--所有该语言的程序的全体
每个句子构成的规律
2、研究语言 每个句子的含义
每个句子和使用者的关系
3、研究程序设计语言
每个程序构成的规律
每个程序的含义
每个程序和使用者的关系
4、语言研究的三个方面
语法 Syntax
语义 Semantics
语用 Pragmatics
上的除ε外的所有符号串组成的集合记为+ 。
Σ+称为Σ的正闭包。
例:Σ={a,b}
Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…}
Σ+={a,b,aa,ab,ba,bb,aaa,aab,…}
3.3文法和语言的形式定义
1、文法即是生成方式描述语言的:语言中的每个句子可以用严格定义的规则来构造.下面给
多余规则:指文法中任何句子的推导都不会用到的规则
文法中不含有不可到达和不可终止的非终结符
1)文法中某些非终结符不在任何规则的右部出现,该非终结符称为不可到达。
2)文法中某些非终结符,由它不能推出终结符号串,该非终结符称为不可终止。
对于文法G[S],为了保证任一非终结符A在句子推导中出现,必须满足如下两个条件:
出文法的定义.进而在文法的定义的基础上,给出推导的概念,句型、句子和语言的定义.
1)定义:
文法G定义为四元组(VN,VT,P,S )其中VN为非终结符号(或语法实体,或变量)集;VT为终
结符号集;P为产生式(也称规则)的集合; VN,VT和P是非空有穷集。 S称作识别符号或开
始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。
A→ab
A→aAb
A→ε
2 G[S]: A→ab A→aAb A→ε
S→aSb
3 G[S]: A→ab |aAb |ε
S→aSb
2、推导的定义
直接推导“”
α→β是文法G的产生式,若有v,w满足:v=γαδ,w= γβδ, 其中γ∈V*,δ∈V*
则称v直接推导到w,记作 v w
也称w直接归约到v
例:G: S→0S1, S→01
4、符号串集合:若集合A中所有元素都是某字母表上的符号串,则称A为字母表上的符号串
集合。
符号串集合A和B的乘积
定义为 AB =xy|xA且yB
若 集合A=ab,cde 集合B = 0,1 则AB=ab1,ab0,cde0,cde1
使用 * 表示上的一切符号串(包括ε)组成的集合。 Σ*称为Σ的闭包。
(4). 如果结点n有标记A,其直接子孙结点从左到右的次序是n1,n2,…,nk,其标记分别
为A1,A2,…,Ak,那么A→A1A2,…,Ak一定是P中的一个产生式
定理:
G为上下文无关文法, 对于α≠ε,有S =>* α,当且仅当 文法G有以α为结果的一棵语法
树(推导树)
3、上下文无关文法的语法树的用处
1. A必须在某句型中出现
即有S =>* αAβ,其中α,β属于V*
2. 必须能够从A推出终结符号串t来
即A =>* t,其中t∈VT*
T→T*F|F F→(E)|a 最左推导:EE+T T+T F+T a+T a+T*F a+F*F a+a*F a+a*a 最右推导: EE+T E+T*F E+T*a E+F*a E+a*a T+a*a F+a*a a+a*a 既不是最左也不是最右推导:EE+T T+T T+T*F F+T*F F+F*F a+F*F a+F*a a+a*a 2、语法树 设G=( VN,VT,P,S)为一cfg,若一棵树满足下列4个条件,则此树称作G的语法树(推导树)(派 生树): (1). 每个结点都有一个标记,此标记是V的一个符号 (2). 根的标记是S (3). 若一结点n是非终端结点,并且有标记A,则肯定A∈VN
这两个问题是递归不可解的,但可以为无二义性寻找一组充分条件
文法的二义性和语言的二义性是两个不同的概念。因为可能有两个不同的文法G和G′,其中
G是二义的,但是却有L(G)=L(G′),也就是说,这两个文法所产生的语言是相同的。
二义文法改造为无二义文法
G[E]: E → i
G[E]:E → T|E+T
E → E+E
VN和VT不含公共的元素,即VN ∩ VT = φ 用V表示VN ∪ VT ,称为文法G的字母表或字汇
表规则,也称重写规则、产生式或生成式,是形如α→β或α∷=β的(α,β)有序对,其
中α是字母表V的正闭包V+中的一个符号,β是V*中的一个符号。α称为规则的左部,β称
作规则的右部。
2)文法的写法
1 G:S→aAb
第三章 文法和语言
3.1 文法的直观概念和语言概述
当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需
列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示
的问题。
1、语言概述
语言是由句子组成的集合,是由一组符号所构成的集合。
汉语--所有符合汉语语法的句子的全体
句型的直接短语
若有A β,则称β是句型αβδ相对于非终结符A 的直接短语
句型的句柄
一个句型的最左直接短语称为该句型的句柄
典型题型:已知一上下文无关文法,对给定的句型,画出语法树,并求其所有的短语,直接短
语以及句柄。
3.7有关文法实用中的一些说明
文法中不含有有害规则和多余规则
有害规则:形如U→U的产生式。会引起文法的二义性
有不是正则语言的上下文无关语言。 根据形式语言理论,文法和识别系统间有这样的关系 1、 0型文法(短语结构文法)的能力相当于图灵机,可以表征任何递归可枚举集,而且任何
0型语言都是递归可枚举的 2、1型文法(上下文有关文法):产生式的形式为α1Aα2→α1βα2,即只有A出现在α1 和α2的上下文中时,才允许β取代A。其识别系统是线性界限自动机。 3、 2型文法(上下文无关文法CFG):产生式的形式为A→β,β取代A时与A的上下文无关。 其识别系统是不确定的下推自动机。 4、 3型文法(正规文法RG):产生的语言是有穷自动机(FA)所接受的集合 3.5上下文无关文法及其语法树 1、最左(最右)推导:在推导的任何一步αβ,其中α、β是句型,都是对α中的最左(右) 非终结符进行替换 最右推导被称为规范推导。最右推导的逆过程称为规范规约 由规范推导所得的句型称为规范句型;所有的句子都是规范句型。 G[E]: E→E+T|T
语法 -- 表示构成语言句子的各个记号之间的组合规律
语义 -- 表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)
语用 --表示在各个记号所出现的行为中,它们的来源、使用和影响。
每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。
语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立
串 3. y是上的符号串,当且仅当它可以由1和2导出。
例如: Σ={a,b}
ε,a,b,aa,ab,aabba…都是上的符号串
3、符号串的运算
符号串的长度:符号串中符号的个数.符号串s的长度记为|s|。
如001110的长度是6。
空符号串,即不包含任何符号的符号串,用ε表示,其长度为0,即|ε|=0。
2) 已知语言写出描述该语言的文法
3.4 文法的类型
通过对产生式施加不同的限制,Chomsky将文法分为四种类型:
0型文法:对任一产生式α→β,都有α∈(VN∪VT)+, β∈(VN∪VT)*
1型文法:对任一产生式α→β,都有|β|≥|α|, 仅仅 S→ε除外
Biblioteka Baidu
2型文法:对任一产生式α→β,都有α∈VN , β∈(VN∪VT)*
者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称
为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。
如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。
形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽
句子:有文法G,若S => x,且x∈VT*,则称x是文法G的句子。 例:G: S→0S1, S→01 S 0S1 00S11 000S111 00001111 G的句型S,0S1 ,00S11 ,000S111,00001111 G的句子00001111, 01 4、文法,语言的定义 由文法G生成的语言记为L(G),它是文法G的一切句子的集合:
1) 已知文法写出该文法所生成的语言:
① 语言是有穷集:通过从开始符号的推导出所有的句子,所有句子的集合即为所求的语言
② 语言是无穷集:通过从开始符号的推导出几个的句子,总结句子的特点,将特点描述出来。
例如 G: S→0S1, S→01
S 01 S0S1 0011 S 0S1 00S11=>000111 语言为 01 个数相等,并且 0 在前,1 在后 L(G)={0n1n|n>=1}
T → F|T*F
E → E*E
F → (E)|i
E → (E)
规定优先顺序和结合律
如果产生上下文无关语言的每一个文法都是二义的,则说此语言是先天二义的。对于一个程
序设计语言来说,常常希望它的文法是无二义的,因为希望对它的每个语句的分析是唯一的。
3.6句型的分析
句型的短语
S =>* αAδ且 A =>+ β,则称β是句型αβδ相对于非终结符A的短语
符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。
是程序设计语言语法分析研究的基础。
3.2符号与符号串
1、字母表:符号(元素)的非空有穷集合。
2、符号串:由字母表中的符号组成的任何有穷序列称为该字母表上的符号串。1.空符号串ε
(没有符号的符号串)是上的符号串 2.若x是上的符号串,a是的元素,则xa是上的符号
用于描述上下文无关文法句型推导的直观方法
一棵语法树表示了一个句型的种种可能的(但未必是所有的)不同推导过程,包括最左(最右)
推导。
4、二义文法
若一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的
或者,若一个文法存在某个句子有两个不同的最左(右)推导,则称这个文法是二义的
判定任给的一个上下文无关文法是否二义,或它是否产生一个先天二义的上下文无关语言,
0S1 00S11
00S11 000S111
000S111 00001111
S 0S1
若存在v w0 w1 ... wn=w,(n>0)
+
则记为v w,v推导出w,或w归约到v
若有 v =>w,或 v=w,
* 则记为 v => w
3、句型、句子的定义 *
句型:有文法G,若S => x,则称x是文法G的句型。 *
3型文法 G[S]:
S→0A|1B|0 A→0A|1B|0S B→1B|1|0
G[I]:
I → lT I→l T → lT T → dT T→l T→d
四种文法之间的逐级“包含”关系 0型文法产生的语言称为0型语言 1型文法或上下文有关文法( CSG )产生的语言称为1型语言或上下文有关语言(CSL) 2型文法或上下文无关文法( CFG )产生的语言称为2型语言或上下文无关语言( CF L ) 3型文法或正则(正规)文法( RG )产生的语言称为3型语言正则(正规)语言( RL ) 四种文法之间的关系 是将产生式做进一步限制而定义的。 语言之间的关系依次:有不是上下文有关语言的0型语言,有不是上下文无关语言的1型语言,
3型文法:任一产生式α→β的形式都为A→aB或A→a,其中A∈VN ,B∈VN ,a∈VT
例:1型(上下文有关)文法
文法G[S]:
S→CD
Ab→bA
C→aCA
Ba→aB
C→bCB
Bb→bB
AD→aD
C→ε
BD→bD
D→ε
Aa→bD
文法的类型举例
例:2型(上下文无关)文法
文法G[S]:
S→AB A→BS|0 B→SA|1
相关文档
最新文档