Lisp vs Python - 静态编译

yod*_*die 13 lisp python dynamic-languages compilation

为什么Lisp及其所有动态功能都可以静态编译,但Python不能(不会丢失所有动态功能)?

Ant*_*sma 13

没有什么能阻止Python的静态编译.它的效率稍低,因为Python显示了更多可变的局部范围,同样,为了保留一些动态属性(例如eval),你需要将编译器包含在已编译的程序中,但是没有什么能阻止它.

也就是说,研究表明,大多数Python程序虽然在静态分析下是动态的,但在运行时是相当静态和单态的.这意味着运行时JIT编译方法在Python程序上运行得更好.有关将Python编译为机器代码的方法,请参阅unladen-swallow,PyPy,Psyco.但是IronPython和Jython使用最初用于静态语言的虚拟机将Python编译成机器码.