将表达式改为三个地址码的算法

时间:2013-10-17 09:12:12

标签: algorithm

我的语法有以下语法:

exp := cons | 
       var | 
       exp binop exp | 
       unop exp

其中binop是像plus和unop这样的二元运算符,就像negetive这样的一元运算符。我希望将它们转换为three address code形式。

例如:表达式3 + a * 7 * (3 + (~4))将是:

__var_1 = ~ 4;
__var_2 = 3 + __var_1;
__var_3 = 7 * __var_2;
__var_4 = a * __var_3;
__var_5 = 3 + __var_4;

语言无关紧要,只有算法才对我很重要。

0 个答案:

没有答案