与C、FORTRAN、COBOL等语言不同,支持λ演算或自动内存管理的语言无法直接编译为汇编语言。但是可以在微码或引导程序中提供解释器来弥补这一差距,以允许“编译”Python、LISP等语言。(一些操作,如垃圾回收,仍在编译后的二进制文件中内置的解释器中执行。)
由于Python是一种动态类型语言,如果汇编程序使用Python的运行时环境/库来动态获取对象,则只有这种可能性。因此,这只能在某些开销下实现。但是,PyPy项目中有RPython。它是Python语言的受限子集(不再是动态类型,并且缺少大多数Python标准库模块)。RPython程序可以转换为机器代码(据我所知,它生成C代码作为中间代码)。Python本身会为其虚拟机生成中间代码。如果您想查看此代码,请使用Python标准库中的dis模块。这将生成类似汇编的表示形式来表示您的Python函数。请记住,“真正”的微处理器无法使用它,并且结果可能会随着您使用的Python版本而改变。