2. 【短语、直接短语、句柄】概念、做题步骤

短语、直接短语、句柄的概念(关系:短语 > 直接短语 > 句柄)

设文法 G=(VN,VT,P,S) ,且 U∈VN,x,y,u ∈V*

短语

若有 S⇒*xUy⇒+xuy,则u称为句型xuy相对于U的短语

注意:一个短语,一定要讨论句型,并且一定要讨论是相对于哪一个部分。观察定义可以看到,U和u的上下文,也就是x和y是一样的,U通过多步推导的到u(x和y没有进行推导)。通过这样严格的定义,短语u才可以规约为U

举个例子:

G(expr):
expr → expr + term | expr - term | term
term → term * factor | term / factor | factor
factor → digit | (expr)
digit → 0 | 1 | 2 … | 9

推导:

expr ⇒ expr + term
⇒ expr + factor
⇒ expr + digit

解释:上面的例子中,digit是句型expr + digit相对于factor的一个短语;同样,digit是句型expr +digit相对于term的一个短语。

digit可以规约为factor ;同样digit可以规约为term

当然,还有一个没有说,factor是句型expr + factor相对于term的短语。


直接短语

若有 S⇒ * xUy⇒xuy,则u称为句型xuy相对于U的 直接短语 (或简单短语)

与短语的区别 :xUy⇒xuy仅需要一步推导

仍然使用上面的例子

expr ⇒ expr + term
⇒ expr + factor
⇒ expr + digit

digit是句型expr + digit相对于factor的直接短语;factor是句型expr + factor相对于term的直接短语。


句柄

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

最左直接短语 :若一个句型只有一个直接短语,则这个直接短语就是句柄;若存在多个直接短语,则把位于最左边的直接短语称为最左直接短语。

上面的直接短语的两个例子中,两个直接短语分别为各自句型的句柄,因为每个句型仅有一个直接短语。

对于一些复杂的句型来说,可以通过语法树快速准确的确定句柄。



求【短语、直接短语、句柄】做题步骤

首先来看一棵树 :

在这里插入图片描述

1. 判断短语
1)从深度为1开始,找出父节点,该图为S,它的短语为所有其子节点(无法继续产生叶子节点的节点)的集合,此处即为 a1b1b2a2a3
2)从最上层刚才找过的S往下找下一个父节点,即深度为2的,有A,B,S,依照1)中的做法,它们的短语分别为: a1 ,b1b2,a2a3
3)往下到深度为3,包含叶子节点的有S,B,B,A,它们的短语分别为(空代表没有): b1 ,b2,a2
4)继续往下(深度为4)由于已经都是叶子节点,没有子节点,到此为止。

综上,短语有 a1b1b2a2a3 ,a1,b1b2,a2a3,b1,b2,a2




2.判断直接短语 (简单短语)
简单短语为一次性能推导出来的,即一次性推出叶子节点,如图,A->a1,B->b1,B->b2,A->a2均为直接推出叶子节点,故直接短语有 a1,b1,b2,a2

需要注意的是,最右边的a3也是叶子节点,也能直接由其父节点直接推导,但由于兄弟节点还有子节点,因而不算。




3.判断句柄
句柄即最左直接短语,由图可看出为a1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的白是什么白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值