0

有谁知道自动更改一段 C 源代码以将常见的算术多操作数操作更改为双操作数操作的任何方式(编译器标志/工具)?

IE:

(a = b + c * d - e )  ---becomes-->   
x = c * d  
y = x - e  
a = b + y
4

1 回答 1

0

是的。你想要一个程序转换系统(PTS)。这些旨在解析代码,应用根据语法定义的代码改组操作,然后使用更改重新生成源代码。他们倾向于使用 AST 来确保不存在误解文本的问题。

要做到这一点,您必须说服工具选择您的操作数对,计算子表达式的类型,并制造具有适当类型的临时变量。而且它必须能够解析和分析C,这很难解析 esp。如果您包括预处理器条件和宏。没有多少 PTS 能够做到这一点。几乎没有其他东西可以做到。

于 2014-10-03T06:33:32.367 回答