python在程序集中实现

3 python

我只是好奇,但我想知道python是否可以在汇编中实现,如果没有,为什么没有帮助解决速度问题.原谅我在编程语言方面的天真.

小智 15

主要实现是用C语言编写的,并且编译为机器代码(即汇编使CPU可读).所以编写它的程序集当然是可能的,如果它可以用于编译器,那么在理论上它对人类是可能的.实际上,它甚至都不实用.不仅asm比C更低级(显着增加开发时间,甚至可能与项目大小成比例),它也是高度特定于平台的,因此每个端口都需要大量工作(并且维护数量乘以数字)支持的平台 - 在CPython的情况下相当多.

除此之外,如果这会产生显着的速度加成,这是非常值得怀疑的.把它写得更接近金属并不会让事情变得更加神奇(相反的情况可能就是这样 - 你很难找到一个能比一四个或五个众所周知的C编译器更好地编写更好的程序集的程序员) .Python的许多缓慢来自于语言所包含的许多抽象和间接,而不是来自这些的粗略实现.

一个更有前途的方法(确实遵循几个替代实现)是一个聪明的Just In Time-Compiler(JIT),它保留了所有的动态性,但利用了大多数Python程序通过识别最常见的方式很少使用该动态的事实.运行时的路径并优化这些路径.这些复杂的程序再次不是用asm编写的.

  • 许多人称C为"便携式汇编语言". (4认同)

Tyl*_*ves 5

本机代码不是一种神奇的make-it-go-faster操作.语言语义确实决定了语言的速度(或不快).(例如,通过Hipe编译为本机代码的erlang仍然相当慢).