为什么具有所有动态特性的 Lisp 可以静态编译,而 Python 不能(在不丢失其所有动态特性的情况下)?
最佳答案
没有什么可以阻止 Python 的静态编译。它的效率有点低,因为 Python 揭示了更多可变的本地范围,而且,要保留一些动态属性(例如 eval),您需要将编译器包含在已编译的程序中,但也没有什么可以阻止的。
也就是说,研究表明,大多数 Python 程序虽然在静态分析下是动态的,但在运行时却是相当静态和单态的。这意味着运行时 JIT 编译方法在 Python 程序上工作得更好。请参阅 unladen-swallow、PyPy、Psyco,了解将 Python 编译成机器代码的方法。还有 IronPython 和 Jython,它们使用最初用于静态语言的虚拟机将 Python 编译成机器代码。
关于python - Lisp vs Python——静态编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2812954/