发布
社区首页 >问答首页 >从理论上讲,Python可以“反编译”成C语言吗

从理论上讲,Python可以“反编译”成C语言吗
EN

Stack Overflow用户
提问于 2014-03-04 23:36:03
回答 3查看 338关注 0票数 4

既然Python本身是用C编写的,那么理论上有没有可能将任何Python程序“反编译”成C,不管是什么原因?不是翻译,而是真正的反编译(使用一个程序为每个Python操作找到适当的C函数,并以语法正确的方式实现它们),而不是翻译(这将是提取程序的语义并用C编写另一个程序来做同样的事情)。

EN

回答 3

Stack Overflow用户

发布于 2014-03-04 23:43:13

从理论上讲,任何编程语言都可以翻译成任何其他编程语言。这种理论上的可能性并没有说明它有多容易,也没有说明是否有任何现有的工具允许您这样做。

它也不明确什么是“反编译”。例如,我可以使用boost::python并将python程序作为字符串嵌入到C++程序中。现在我有了一个完全等同于python代码的C++程序。不过,这很难算得上是一个恰当的翻译。

有些事情是翻译者无法(很好)完成的:

代码语言:javascript
代码运行次数:0
复制
if ask_user():
    a = 1
else:
    a = "hi"
print(a)

由于编译时类型的多义性,任何等效的c程序都必须具有一些带有运行时类型信息的精心设计的数据结构。

票数 3
EN

Stack Overflow用户

发布于 2014-03-04 23:41:16

是。当然,您可以将python转换为c。解释器所做的部分工作最终会出现在您的c程序中。如果你把你的python限制在RPython上,事情会变得简单得多。因为在完整的python中有些东西不能很好地翻译。但大多数情况下,我看不到太多的意义。

票数 0
EN

Stack Overflow用户

发布于 2014-03-04 23:41:45

查看https://code.google.com/p/py2c/将python转换为c。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22176280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档