结构推理 为下列文法配上语义子程序,使它输出S产生的二进制数的值,例如输入11011.101,输出为27.625。
   S→L.L|L L→LB|B  B→0|1
【正确答案】拓广文法增加一个产生式S'→S用于输出,为文法符号配上属性Value,表示相应的数值。利用该属性,语义子程序可以描述如下:
   S'→S     {print(S.val)}
   S→L1.L2  {S.val=L1.val+L2.val/2L2.length}
   S→L      {S.val=L.val}
   L→LlB    {L.val=L1.Val*2+B.val;
             L.1ength=L1.1ength+1
             }
   L→B      {L.val=B.val;
             L.1ength=1
             }
   B→0    (B.val=0)
   B→I    {B.val=1)
【答案解析】