Cython - 概览
¶
[Cython] 是使为 Python 语言编写 C 扩展如 Python 本身一样容易的编程语言。它旨在变为超集对于
[Python]
语言,赋予其高级、面向对象、函数式及动态编程。它的主要特征:支持可选静态类型声明作为语言的一部分。源代码被翻译成优化 C/C++ 代码并编译成 Python 扩展模块。这允许非常快速的执行程序和紧密集成外部 C 库,且保持 Python 语言众所周知的高程序员生产力。
首要 Python 执行环境常被称为 CPython,因为它是以 C 编写的。其他主要实现使用 Java (Jython
[Jython]
), C# (IronPython
[IronPython]
) 和 Python 本身 (PyPy
[PyPy]
)。CPython 以 C 编写,有助于包裹很多透过 C 语言接口的外部库。不管怎样,以 C 编写必要胶水代码仍然很不平凡,尤其对于更熟习像 Python 高级语言而不是像 C 接近裸机语言的程序员而言。
最初基于著名的 Pyrex
[Pyrex]
,Cython 工程通过将 Python 代码翻译成等效 C 代码的源代码编译器来解决此问题。这种代码在 CPython 运行时环境中执行,但有编译 C 的速度和直接调用 C 库的能力。同时,保持 Python 源代码的原始接口,使它可直接用于 Python 代码。这 2 方面特色使 Cython 支持 2 主要用例:采用快速二进制模块扩展 CPython 解释器,和接口 Python 代码与外部 C 库。
虽然 Cython 可以编译 (大多数) 常规 Python 代码,但生成的 C 代码通常是从 Python 和 C 类型的可选静态类型声明获得主要 (有时令人印象深刻) 速度改进。这些允许 Cython 为部分代码赋值 C 语义,并将它们翻译成很高效的 C 代码。因此,类型声明可用于 2 目的:用于将代码区间从动态 Python 语义移入静态且快速的 C 语义,但也用于直接操纵由外部库定义的类型。因此,Cython 将这 2 世界合并成应用非常广泛的编程语言。
|
[Cython]
|
G. Ewing、R. W. Bradshaw、S. Behnel、D. S. Seljebotn 等人,Cython 编译器,
http://cython.org
.
|