【5分题】
让合成属性val给出以下语法中 S 生成的二进制数的值。例如,在输出 101.101 上,S.val=5.625
S → LL |升
L → LB |乙
乙 → 0 | 1
写出对应于每个产生式的 S 属性值以找到 S.val。回答:
说明:对于上面的语法,下面给出了每个产生式对应的 S 属性值来找到 S.val。
这里,val 表示值,nb 表示位数。
S → L.L { S.val=L1.val + L2.val / 2^L2.nb }
S → L { S.val = L.val }
L → LB { L.val = 2 * L.val + B.val , L.nb = L.nb + B.nb }
L → B { L.val = B.val , L.nb = B.nb }
B → 0 { B.val = 0 , B.nb = 1 }
B → 1 { B.val = 1 , B.nb = 1 }
这个问题的测验