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

定义

编译原理 —— 短语、直接短语、素短语和句柄_第1张图片

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


题目

令文法 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))是它的一个句型,指出这个句型的所有短语,直接短语,句柄和素短语。


步骤一:画出语法树

编译原理 —— 短语、直接短语、素短语和句柄_第2张图片

步骤二:判断短语

  • 一个句型的语法树中任一子树的叶节点所组成的符号串都是该句型的短语。
  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 如下

题目:
编译原理 —— 短语、直接短语、素短语和句柄_第3张图片

语法树:
编译原理 —— 短语、直接短语、素短语和句柄_第4张图片

短语: 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 的一个句型,并求出短语,直接短语,句柄和素短语。

语法树:

编译原理 —— 短语、直接短语、素短语和句柄_第5张图片

短语: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

你可能感兴趣的:(编译原理,编译原理)