Python的基本语言


Answers:


120

您不能说Python是用某种编程语言编写的,因为Python作为一种语言只是一组规则(例如语法规则或标准功能的描述)。所以我们可以说,它是用英语写的:)。但是,提到的规则可以用某种编程语言来实现。因此,如果将诸如“ import this”之类的字符串发送到称为解释器的程序,它将返回“ Python禅宗”。

由于大多数现代OS都是用C编写的,因此现代高级语言的编译器/解释器也都是用C编写的。Python也不例外-它最流行/“传统”的实现称为CPython,并且是用C编写的。

还有其他实现:

  • IronPython(在.NET上运行的Python)
  • Jython(在Java虚拟机上运行的Python)
  • PyPy(使用JIT编译器的快速python实现)
  • 无堆栈Python(支持微线程的CPython分支)

4
请注意,PyPy是用RPython编写的。
Marcin 2012年


15

Python是用英语编写的。但是有几种实现:


2
实际上PyPy是用RPython编写的
Jakob

我不知道,但是CPython某种程度上是最慢的实现。blog.dhananjaynene.com/2008/07/…– Dewsworld
2012年

@JakobBowyer您可以使用CPython执行PyPy,因此可以说它是用Python编写的。由于性能原因,它仅使用Python的一个子集,更多的是实现细节(但非常有趣且令人费解的细节)。
邓肯2012年

1
实际上,python可以用多种语言编写(甚至说)。例如:الثعبان
斯蒂芬ç

ur genius @StephenC
El-Mo


5

如果您从源代码编译python,就会有一个好主意。通常gcc是编译*.c文件


0

要添加和重构其他一些好的答案:

Python(问题)规范是用英语编写的,但是可以像标准MLScheme一样以正式的语义编写。请参阅 编程语言规范

正如Gandaro所指出的,Python有多种语言的实现,其中最快的是令人惊讶的不是用C语言编写的原始CPython。


您是说“出人意料地不是”还是“不足为奇”?
necromancer

@necromancer我的意思是前者,即我对最快的实现不是C语言中的参考实现感到惊讶。但是,我认为有很多人可以提高性能也就不足为奇了,因为他们不一定必须处理参考实现要满足的其他约束。
nealmcb

1
我认为实现的语言要比(a)将Python源代码转换成机器代码的动态编译器的复杂程度低。该编译器可以使用任何语言。重要的是算法的质量;(b)某些库的机器代码。Python以数字库而闻名,这些数字库不是用Python编写的,而只是“粘合”到环境中。(c)基准;某些程序在一种实现中的运行速度可能比其他程序快。
necromancer '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.