python在汇编语言中实现

python在汇编语言中实现,python,Python,我只是好奇,但我想知道python是否可以在汇编中实现,如果不能,为什么没有这样做来帮助解决速度问题。请原谅我在编程语言方面的幼稚。本机代码并不是让它运行得更快的魔法。语言语义实际上在很大程度上决定了一种语言的速度。(例如,通过Hipe编译成本机代码的erlang仍然相当慢)。主要实现是用C编写的,并且被编译成机器代码(即CPU可读的程序集)。因此,编写它的汇编程序当然是可能的,如果编译器有可能的话,理论上人类也有可能。在实践中,它甚至一点也不实用。不仅asm比C更低级(大大增加了开发时间,甚至

我只是好奇,但我想知道python是否可以在汇编中实现,如果不能,为什么没有这样做来帮助解决速度问题。请原谅我在编程语言方面的幼稚。

本机代码并不是让它运行得更快的魔法。语言语义实际上在很大程度上决定了一种语言的速度。(例如,通过Hipe编译成本机代码的erlang仍然相当慢)。

主要实现是用C编写的,并且被编译成机器代码(即CPU可读的程序集)。因此,编写它的汇编程序当然是可能的,如果编译器有可能的话,理论上人类也有可能。在实践中,它甚至一点也不实用。不仅asm比C更低级(大大增加了开发时间,甚至有可能扩大到项目规模),它还具有高度的平台特定性,因此每个端口都需要大量的工作(并且维护要乘以受支持的平台的数量——在CPython的情况下相当多)

除此之外,这是否会带来显著的速度提升也是一个非常值得怀疑的问题。在更接近金属的地方编写汇编并不能让东西神奇地运行得更快(相反,你很难找到一个程序员,他能始终编写比四五个著名的C编译器更好的汇编)。Python的缓慢很大程度上来自于该语言包含的许多抽象和间接,而不是这些抽象和间接的草率实现


一种更有希望的方法(实际上有几种替代实现)是一种聪明的即时编译器(JIT),它保留了所有的动态性,但利用了一个事实,即大多数Python程序在运行时识别最常见的路径并对其进行优化,从而很少利用这种动态性。这样复杂的程序又不是用asm编写的。

这个问题在很多方面都是错误的……从哪里开始?再也没有人在汇编程序中实现复杂的软件了——它简直无法管理。据您所知,python/are/的部分是在内联汇编程序中实现的。还有,什么是速度问题?除此之外:是的,它可以在汇编程序中实现(任何东西都可以)。我认为这个问题确实有答案——“是的”,以及“因为它不切实际,不可移植,不太可能产生显著的速度提高。”因此,我认为不应该关闭它。为什么会有反对票?一个初学者问了一个很好的问题,我想这里的问题是,你必须解释很多关于计算机、编程语言、编译和虚拟机的知识,才能得到一个初学者真正能理解的答案——“语言语义学确实在很大程度上决定了一种语言的速度(或不速度)。”对于任何了解Python等编程语言如何工作的人来说,这是一个非常好的答案,但对于不了解Python的人来说,这是毫无意义的。所以这个问题太宽泛了,让我很难回答。很多人把C称为“可移植汇编语言”。