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

本文详细介绍了编译原理中的关键概念,包括短语、直接短语、句柄和素短语,并通过具体的文法G1和例子解析它们的判断过程。通过绘制语法树,分析句型(S,(a))的短语、直接短语、句柄和素短语,以及两个练习题目的解答,帮助读者深入理解这些概念。" 118104444,7982270,Plotly: 设置等比例画布空间,"['python', '数据可视化', 'plotly']

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

定义

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


题目

令文法 G1G_1G1 为:

①S−>(L)∣aS∣a①S->(L)|aS|aS>(L)aSa
②L−>L,S∣S②L->L,S|SL>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∗FT*FTF, E+T∗FE+T*FE+TF

直接短语:T∗FT*FTF

句柄:T∗FT*FTF

素短语:T∗FT*FTF


练习 2 如下

题目:

令文法 G1G_1G1 为:

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

证明 (Sd(T)db)(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

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值