gpt4 book ai didi

将 C 中的所有二元运算转换为具有 2 个操作数

转载 作者:行者123 更新时间:2023-11-30 17:28:03 25 4
gpt4 key购买 nike

有谁知道有什么方法(编译器标志/工具)可以自动更改一段 C 源代码,将常见的算术多操作数运算更改为双操作数运算吗?

即:

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

最佳答案

是的。你想要一个program transformation system (PTS) 。它们旨在解析代码,应用根据语法定义的代码改组操作,然后通过更改重新生成源代码。他们倾向于使用 AST 来确保不存在误解文本的问题。

为了正确地做到这一点,您必须说服工具为您选择操作数对,计算子表达式的类型,并使用适当的类型创建临时变量。而且它必须能够解析和分析C,尤其是解析起来相当困难。如果您包含预处理器条件和宏。能够做到这一点的 PTS 并不多。实际上没有其他方法可以做到这一点。

关于将 C 中的所有二元运算转换为具有 2 个操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com