编译原理 —— 短语、直接短语、素短语和句柄

定义

如果 β β β 中至少含有一个终结符,而且除它自身之外不再含任何更小的素短语,那么称 β β β素短语


题目

令文法 G 1 G_1 G1 为:

① S − > ( L ) ∣ a S ∣ a ①S->(L)|aS|a S>(L)aSa
② L − > L , S ∣ S ②L->L,S|S L>L,SS

证明 ( S , ( a ) ) (S,(a)) (S,(a))是它的一个句型,指出这个句型的所有短语,直接短语,句柄和素短语。


步骤一:画出语法树


步骤二:判断短语

  • 一个句型的语法树中任一子树的叶节点所组成的符号串都是该句型的短语。
  1. 对于第一层的非终结符 S ,其叶节点所组成的短语是(S,(a))
  2. 对于第二层的非终结符 L ,其叶节点所组成的短语是S,(a)
  3. 对于第三层的非终结符 L ,其叶节点所组成的短语是S
  4. 对于第三层的非终结符 S ,其叶节点所组成的短语是(a)
  5. 对于第四层的非终结符 L ,其叶节点所组成的短语是a
  6. 对于第五层的非终结符 S ,其叶节点所组成的短语是a

故短语有:

① (S,(a))
② S,(a)
③ S
④ (a)
⑤ a


步骤三:判断直接短语

  • 一个句型的语法树中任一最小子树的叶节点所组成的符号串都是该句型的短语。

故直接短语有:

① S
② a


步骤四:判断句柄

  • 句柄是最左边的直接短语

故句柄为:

① S


步骤五:判断素短语

  • 有后往前对短语进行判断,如果短语中至少含有一个终结符,而且除它自身之外不再含任何更小的素短语,那么称该短语为素短语

① 对于短语 a ,a不含其他任何更小的素短语。故短语 a 为素短语
② 对于短语 (a) ,(a) 含素短语 a。故短语 (a) 不是素短语
③ 对于短语 S ,S 不含终结符。故短语 S 不是素短语
④ 对于短语 S,(a) ,S,(a) 含素短语a。故短语 S,(a) 不是素短语
⑤ 对于短语 (S,(a)) ,(S,(a)) 含素短语a。故短语 (S,(a)) 不是素短语

故素短语为:

① a


练习 1 如下

题目:
在这里插入图片描述

语法树:
在这里插入图片描述

短语: T ∗ F T*F TF, E + T ∗ F E+T*F E+TF

直接短语: T ∗ F T*F TF

句柄: T ∗ F T*F TF

素短语: T ∗ F T*F TF


练习 2 如下

题目:

令文法 G 1 G_1 G1 为:

① S − > a ∣ b ∣ ( T ) ① S -> a|b|(T) S>ab(T)
② T − > T d S ∣ S ② T -> TdS|S T>TdSS

证明 ( S d ( T ) d b ) (Sd(T)db) (Sd(T)db) 是 S 的一个句型,并求出短语,直接短语,句柄和素短语。

语法树:

在这里插入图片描述

短语:S,(T),b,Sd(T),Sd(T)db,(Sd(T)db)

直接短语:S,(T),b

句柄:S

素短语:(T),b


参考链接:

https://blog.csdn.net/it_dream_er/article/details/53612006

  • 316
    点赞
  • 819
    收藏
  • 打赏
    打赏
  • 37
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论 37

打赏作者

starter_zheng

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值