Спустя пять лет разработки вышел релиз компилятора для языков программирования Python и Cython – проект Cython 3.0. Он позволяет транслировать код Python в представление на C/C++.
Открытое решение
Язык программирования Cython – это расширенный вариант Python, который предназначен для упрощения интеграции с программами, написанными на C.
Cython чаще всего используется для написания Python-обвязок вокруг библиотек на языке C и разработки модулей, которые ускоряют выполнение программ на Python.
Компилятор Cython 3.0 распространятся под открытой лицензий Apache 2.0. Исходный код проекта доступен в репозитории на GitHub.
Новая версия
Cython 3.0 поддерживает большую часть возможностей языка Python версии 3.11. Кроме того, проект позволяет применять символы Unicode в идентификаторах и обеспечивает автоматическую генерацию ufunc для NumPy. Добавлены декораторы @dataclass и @total_ordering для быстрого объявления типов расширения Cython в коде Python, а для исключений в функциях на C по умолчанию применяется безопасная обработка.
Все это обеспечивается тесным взаимодействием с API CPython, которое позволяет компилировать широкий диапазон кода Python в оптимизированный код C.
Предыдущая версия Cython была выпущена в октябре 2018 года под номером 0.29. Такое резкое повышение версии связано с переходом на систему семантического версионирования и использование синтаксиса и семантики Python 3 по умолчанию. Ранее по умолчанию компилятор применял семантику Python 2.7.
Особенности компилятора
Код Cython выполняется в среде выполнения классического CPython, но требует наличия в системе компилятора C. Многие дистрибутивы Python, такие, как Anaconda, Enthought Canopy и Sage, включают в себя Cython. Для остальных дистрибутивов требуется установка соответствующего модуля Python через pip install cython.
Главные особенности Cython, расширяющие возможности Python – это средства для прямого вызова функций на С и поддержка необязательных объявлений статических типов переменных С как части языка.
Код Cython может быть скомпилирован в модуль расширения для использования в обычных скриптах на Python без требований к обязательному наличию в системе компилятора C.
При применении Cython скорость выполнения кода на Python возрастает примерно на 30% по сравнению с использованием классического CPython. А для кода с числовыми вычислениями при использовании статических типов ускорение может достигать 100-1000 раз. Подобная особенность позволяет значительно ускорить работу наиболее критичных к производительности участков Python-кода, переведя их на применение статических Си-типов.