Python程序变成标准程序集?

Aca*_*mia 9 python assembly

是否可以将Python程序转换为IEEE-694等微处理器标准汇编语言?汇编语法接近这个 或另一个:http://www.ethicalhacker.net/content/view/152/2/

Rob*_*vey 10

将python编译为C,然后使用您选择的C编译器将其转换为汇编.

或者,使用PyPy,将LLVM指定为目标,并使用LLVM静态编译器为目标体系结构生成汇编语言.


wbe*_*rry 7

与 C、FORTRAN、COBOL 等不同。支持 lambda 演算或自动内存管理的语言不能直接编译为汇编。然而,可以在微代码或引导程序中提供解释器以弥合差距并允许“编译”Python、LISP 等(某些操作,例如垃圾收集,仍然在打包到编译的二进制文件。)


小智 5

由于Python是一种动态类型语言,因此只有当汇编程序使用Python的运行时环境/库来动态获取对象时,这才可能实现。

因此,只有花费一些开销才可能实现。

但是PyPy项目中有 RPython 。它是 Python 语言的受限子集(它不再是动态类型的,并且缺少 Python 标准库中的大多数模块)。RPython 程序可以翻译为机器代码(据我所知,它生成 C 代码作为中间代码)。

Python 本身为其虚拟机生成中间代码。如果您想查看此代码,请使用Python 标准库中的dis模块。这会生成 Python 函数的类似程序集的表示形式。请记住,“真正的”微处理器将无法使用它,并且结果可能会随着您使用的 Python 版本而变化。