109(-,a,1,T2) 110 (:=,T2,_,a) 111 (j,_,_,100)
12. 已知文法G[S]及相应翻译方案 S→aAb {print “1”}
S→a {print “2”} A→AS {print “3”} A→c {print “4”} 输入acab, 输出是什么?
解答
对于这类题目,首先画出句子acab对应的语法树。每当用一个产生式归约时,则执行相应的语义动作。句子acab对应的语法树为:
S a A b A S c a
第一个归约的产生式是A→c,它相应的语义动作为print “4”。所以,产生输出4。 第二个归约的产生式是S→a,它相应的语义动作为print “2”, 产生输出2。 第三个归约的产生式是A→AS,它相应的语义动作为print “3”,产生输出3。 最后归约的产生式是S→aAb,它相应的语义动作为print “1”, 产生输出1。 因此,输入acab, 输出是4231。
16