编译原理:第四节

本文探讨了形式语言与自动机原理中的关键概念,包括二义性文法的证明、短语、直接短语和句柄的概念。同时,通过实例展示了如何进行最右推导过程并确定各步骤中的短语、直接短语和句柄。此外,还介绍了文法的等价性和递归性,以及乔姆斯基将文法分为0型、1型、2型和3型的分类方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

形式语言与自动机原理

回顾上节内容

例:

已知文法 G [ S ] 为  S —> aSb | Sb | b , 证明 G [ S ] 为二义性文法 

解:


存在两棵不同的语法分析树,所以得证 G [ S ] 为二义性文法

短语,直接短语和句柄

短语:一棵子树的所有叶子自左至右排列起来形成一个相对于子树根的短语。
直接短语:仅有父子两代的一棵子树,它的所有叶子自左至右排列起来所形成的符号串。
句柄:一个句型的分析树中最左那棵只有父子两代的子树的所有叶子的自左至右排列。

例:

给定文法 G  = ( { a,b,c,d,e } ,{ S,A,B} , S , P }  )
规则 P : S —>  aAcBe
  A —>  b
  A —>  Ab
  B —>  d
给出句子  abbcde  的最右推导过程,并指出每一步推导的短语,直接短语和句柄 

解:


文法等价与递归文法

如果两个文法G1,G2对应的语言集合相同 :L(G1)= L(G2),则称这两个文法等价

例:

G1:S—>ABC      G2:S—> Xc

 A—>a   X—> AB

 B—>b   A—> a

 C—>c   B—> b

上面两个文法最后都推出 abc,这两个文法是等价的。


递归文法可分为两种形式:直接递归文法和间接递归文法。

直接递归文法:一个文法一步就可以推出本身

间接递归文法:一个文法多步才可以推出本身

文法分类

乔姆斯基(省理工学院语言学的荣誉退休教授)把文法分成四种类型,即0型、1型、2型和3型。

设G=(VN,VT,S,P),其P中的每个产生式α→β不加任何限制,则称G是一个0型文法。

设G=(VN,VT,S,P),若P中的每一个产生式α→β均满足|β|≥|α| ,仅仅S→ε除外,则文法G是1型或上下文有关文法。

设G=(VN,VT,S,P),若P中的每一个产生式α→β满足:α是一非终结符,β∈( VN∪VT )*则此文法称为2型的或上下文无关文法。

设G=(VN,VT,S,P),若P中的每一个产生式的形式都是A→aB或A→a,其中A和B都是非终结符,a是终结符,则G是3型文法或正规文法。

四种文法之间的包含关系:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值