2.4   短 语 、 直 接 短 语 和 句 柄

2.4 短 语 、 直 接 短 语 和 句 柄

2.4.1 短语和直接短语

令 G 是一个文法, S 是文法的开始符号,假定 αβδ 是文法 G 的一个句型,如果有

S ⇒* αAδ且 A ⇒+ β

则称 β 是相对于非终结符 A 的句型 αβδ 的短语。特别是,如果有

S ⇒* αAδ且 A ⇒ β

则称 β 是直接短语
注意体会短语这个概念的定义,仅有 A ⇒+ β ,不一定意味着 β就是句型 αβδ 的一个短语,因为,还需要有 S ⇒* αAδ这一个条件。
例如,考虑文法 G [ N 1 ]:

N 1 → N
N → ND | D
D →0|1|2

对句型 ND ,尽管有 N 1 ⇒+N ,但 N 不是该句型的一个短语,因为不存在从文法的开始符号 N 1到 N 1 D 的推导。事实上,句型 ND 的短语是 ND 自身。
需要指出的是,短语和直接短语的区别在于第二个条件,直接短语中的第二个条件表示有文法规则 A → β ,因此,每个直接短语都是某规则右部

2.4.2 句柄

一个句型的最左直接短语称为该句型的句柄
句柄特征:

(1 )它是直接短语,即某规则右部。
(2 )它具有最左性。

注意,短语、直接短语和句柄都是针对某一句型的,特指句型中的哪些符号子串能构成短语和直接短语,离开具体的句型来谈短语、直接短语和句柄是无意义的

【例 2.13 】
设有文法

G [ S ] = ({ S , A , B },{ a , b }, P , S )

其中,P 为

S → AB
A → Aa | bB
B → a | Sb

求句型 baSb 的全部短语、直接短语和句柄。
分析 根据短语定义,可以从句型的推导过程中找出其全部短语、直接短语和句柄。
对文法,首先建立该句型的推导过程:

S ⇒ AB ⇒ bBB ⇒ baB ⇒ baSb (最左推导)
S ⇒ AB ⇒ ASb ⇒ bBSb ⇒ baSb(最右推导)

从这两个推导过程中,有

① S ⇒* S
S ⇒+ baSb 

句型本身是(相对于非终结符 S )句型 baSb 的短语。

 S ⇒* baB
B ⇒ Sb

句型 baSb 中的子串 Sb ,是(相对于非终结符 B )句型 baSb 的短语,且为直接短语。

③ S ⇒* bBSb
    B ⇒ a

句型 baSb 中的子串 a ,是(相对于非终结符 B )句型 baSb 的短语,且为直接短语、句柄。

④ S ⇒* ASb
   A ⇒+ ba

句型 baSb 中的子串 ba ,是(相对于非终结符 A )句型 baSb 的短语。
对于此句型,再没有其他能产生新的短语的推导了。可见,根据定义求句型的短语、直接短语和句柄比较麻烦、难求。下一节通过对语法树的介绍可以看到,用语法树来求句型的短语、直接短语和句柄是非常直观和简单的。

如有侵权请联系我删除。

欢迎大家关注我哦!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值