- Cython
-
Cython Автор(ы): Robert Bradshaw, Stefan Behnel и др.
Релиз: 0.17.1 (26 сентября 2012 года)
Испытал влияние: Pyrex
Лицензия Сайт: Cython — язык программирования, упрощающий написание модулей С/С++ кода для Python. Кроме стандартного синтаксиса Python поддерживается:
- Прямой вызов функций и методов С/С++ из кода на Cython
- Строгая типизация переменных, классов, атрибутов классов
Код Cython преобразуется в С/С++ код для последующей компиляции и впоследствии может использоваться как расширение стандартного Python или как независимое приложение со встроенной библиотекой выполнения Cython.
Содержание
История
Cython является наследником языка программирования Pyrex (англ.), но в отличие от него имеет больше возможностей и оптимизаций.[1]
Преимущества
Cython имеет очень близкий синтаксис к Python.
Особое преимущество такого «бесшовного» подхода в смешивании Python/C состоит в том, что существующий Python код может быть настроен на работу почти со скоростью С простым добавлением нескольких статических объявлений типов и некоторыми адаптациями в критических циклах — без необходимости в сложном коде интерфейса. Скорость кодирования и читабельность кода остаются сравнимы с питоновскими.
В связи с пониженными накладными расходами в управляющих структурах (особенно в циклах), оптимистической оптимизацией и (ограниченным) выводом типов, скомпилированный Cython код Python обычно выполняется быстрее, чем в CPython 2.6.x, хотя абсолютное улучшение в значительной степени зависит от кода. С объявлениями типов типичные ускорения для численных вычислений/массивов составляет около 100—1000 раз.[2] Для сравнения, типичное увеличение скорости при использовании Psyco (JIT-компилятор для Python) составляет около 4—100 раз.[3]
Cython был оптимизирован для низких накладных расходов на вызов подпрограмм, и таким образом вызов из Python внешнего C/C++ кода через оболочку Cython, как правило, быстрее, чем в большинстве других решений.[4][5]
См. также
- Unladen Swallow
- PyPy
- Psyco
- ShedSkin
Примечания
Ссылки
Источники
- Stefan Behnel, Robert Bradshaw, Craig Citro, Lisandro Dalcin, Dag Sverre Seljebotn, Kurt Smith Cython: The Best of Both Worlds // Computing in Science and Engineering. — 2011. — № 13.2. — P. 31-39. — DOI:10.1109/MCSE.2010.118
Категории:- Языки программирования по алфавиту
- Python
Wikimedia Foundation. 2010.