既然Python本身是用C编写的,那么理论上有没有可能将任何Python程序“反编译”成C,不管是什么原因?不是翻译,而是真正的反编译(使用一个程序为每个Python操作找到适当的C函数,并以语法正确的方式实现它们),而不是翻译(这将是提取程序的语义并用C编写另一个程序来做同样的事情)。
发布于 2014-03-04 23:43:13
从理论上讲,任何编程语言都可以翻译成任何其他编程语言。这种理论上的可能性并没有说明它有多容易,也没有说明是否有任何现有的工具允许您这样做。
它也不明确什么是“反编译”。例如,我可以使用boost::python
并将python程序作为字符串嵌入到C++程序中。现在我有了一个完全等同于python代码的C++程序。不过,这很难算得上是一个恰当的翻译。
有些事情是翻译者无法(很好)完成的:
if ask_user():
a = 1
else:
a = "hi"
print(a)
由于编译时类型的多义性,任何等效的c程序都必须具有一些带有运行时类型信息的精心设计的数据结构。
发布于 2014-03-04 23:41:16
发布于 2014-03-04 23:41:45
查看https://code.google.com/p/py2c/将python转换为c。
https://stackoverflow.com/questions/22176280
复制相似问题