由于Python本身是用C语言编写的,理论上可以将任何Python程序“反编译”成C,无论出于何种原因?不翻译,(它将采用程序的语义并在C中编写另一个执行相同操作的程序)但真正反编译(使用程序为每个Python操作找到适当的C函数并以语法正确的方式实现它们)。
答案 0 :(得分:3)
理论上,任何编程语言都可以翻译成任何其他编程语言。这种理论上的可能性并没有说明它是多么容易,也没有任何现有工具允许你这样做。
“反编译”的含义也很模糊。例如,我可以使用boost::python
并将python程序作为字符串嵌入到C ++程序中。现在我有一个完全等同于python代码的C ++程序。然而,这几乎不算是一种正确的翻译。
有些事情没有翻译能够做到(好):
if ask_user():
a = 1
else:
a = "hi"
print(a)
由于编译时类型歧义,任何等效的c程序都必须具有一些具有运行时类型信息的精细数据结构。
答案 1 :(得分:0)
是。当然,您可以将python翻译为c。解释器的部分内容最终会出现在c程序中。如果你将python限制为RPython,它会变得容易多了。因为完整python中的一些东西不能很好地翻译。尽管如此,我看来并不多见。
答案 2 :(得分:-1)
签出https://code.google.com/p/py2c/将python转换为c。