京东2016实习生招聘 Java开发工程师
有一语法制导翻译如下所示:
S→bAb {print”1”} A→(B {print”2”} A→a {print”3”} B→Aa) {print”4”}
若输入序列为b(((aa)a)a)b,且采用自底向上的分析方法,则输出序列为A 32224441
B 34242421
C 12424243
D 34442212
正确答案 : B
先采用自上而下的方式来构造其语法树时,如下:
S
/ | \
b A b 1 (((aa)a)a)
/ \
( B 2 ((aa)a)a)
/|\