Python理论上可以被“反编译”为C吗
因为Python本身是用C语言写的,所以理论上有没有可能把任何Python程序“反编译”成C语言呢?这里说的不是翻译(翻译是把程序的意思用C语言重新写一遍,让它做同样的事情),而是真正的反编译(就是用一个程序找到每个Python操作对应的C语言函数,并且以正确的语法实现它们)。
3 个回答
-1
你可以去看看这个网站 https://code.google.com/p/py2c/,它可以帮你把Python代码转换成C语言代码。
3
任何编程语言理论上都可以转换成其他编程语言。这种理论上的可能性并不意味着转换过程简单,或者现有的工具能否支持这种转换。
关于什么算是“反编译”也有些模糊。比如,我可以使用 boost::python
,把一个Python程序作为字符串嵌入到C++程序中。这样,我就得到了一个与那个Python代码完全等价的C++程序。不过,这并不算是一个真正的转换。
有些事情是任何翻译工具都无法很好完成的:
if ask_user():
a = 1
else:
a = "hi"
print(a)
由于编译时类型的不明确性,任何等价的C程序都必须有一些复杂的数据结构来处理运行时的类型信息。