1.
设
AS
为文法的综合属性集
, AI
为继承属性集
,
则下列语法制导定义中
产生式 语义规则
P → xQR Q.b:=R.d
R.c:=1
R.e:=Q.a
P → yQR Q.b:=R.f
R.c:=Q.a
R.e:=2
Q → u Q.a:=3
R → v R.d:=R.c
R.f:=R.e
(a) AS={ Q.a, R.c, R.e } AI={ Q.b, R.d, R.f }
(b) AS={ Q.a, Q.b } AI={ R.c, R.d, R.e, R.f }
(c) AS={ Q.b, R.c, R.f } AI={ Q.a, R.d, R.e }
(d) AS={ Q.a, R.d, R.f } AI={ Q.b, R.c, R.e }
(e) AS={ Q.b, R.d, R.e } AI={ Q.a, R.c, R.f }
答案:
(d)
是正确的
在语法制导定义
(
属性文法
)
中
,
综合属性用于“自下而上”传递信息,而继承属性用于
“自上而下”传递信息。判断综合属性和继承属性的简单方法是
,
产生式左部符号的综合属
性根据其右部的符号的属性和
(
或
)
左部符号自己的其他属性计算而得
;
产生式右部符号的继
承属性根据其左部符号的属性和
(
或
)
右部的其他符号的属性计算而得。
本题中
,
从
P → xQR
的语义规则
Q.b:=R.d, R.c:=1, R.e:=Q.a
可得
: Q.b, R.c
和
R.e
为
继承属性,而
R.d, Q.a
的性质则需要其他产生式的语义规则一起加以分析才能确定
;
从
Q →
u
的语义规则
Q.a:=3
可得
Q.a
为综合属性。 依此方法
,
最后可得该语法制导定义的综合属性
集为
AS={ Q.a, R.d, R.f },
继承属性集为
AI={ Q.b, R.c, R.e }
。
2 文法及相应的翻译方案
:
S → bTc {print”1”}
S → a {print”2”}
T → R {print”3”}
R → R/S {print”4”}
R → S {print”5”}
对于输入符号串
bR/bTc/bSc/ac,
该输入符号串的输出是什么
?
答案:
该输入串对应的语法树如下图所示
S
评论0