让属性“val”按照以下语法给出由S生成的二进制数的值:
null
S→ L.L | L L→ 磅| B B→ 0 | 1
例如,输入101.101给出S.val=5.625 仅使用合成属性构建语法导向的翻译方案,以确定 S·瓦尔。 答复: 说明: 给定语法是:-
S -> L.L | L L-> LB | B B -> 0 | 1
现在,仅使用合成属性的语法定向翻译方案包括:
S -> L.L { S.val = L.Val + L.val / L.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 }
式中,val=十进制值,nb=位数 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END