python - Lisp vs Python——静态编译

标签 python lisp compilation dynamic-languages

为什么具有所有动态特性的 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/

相关文章:

lisp - SICP 练习 2.29 困惑

lisp 宏扩展与部分评估

emacs - 如何编辑 quicklisp 的系统定义文件

php - 我需要哪个选项来使用 HHVM 编译 php 代码

python - 属性错误 : 'NoneType' object has no attribute 'time' paramiko

python - 无法导入 pandoc,获取 FileNotFoundError

python - Kivy:如何让每个按钮播放不同的声音

c# - 在 Unity3D 游戏脚本中使用带有 PIP 包的 Python 脚本

php - 如何使用 ./configure 设置变量

c - 编译 openMP 和数学库的问题