Реализации[править | править код]
CPython является основной, но не единственной реализацией языка программирования Python. Существуют также другие реализации.
PyPy — реализация Python, написанная на RPython (подмножество Python, имеющее намного меньше динамических возможностей). Позволяет легко проверять новые возможности. В PyPy, кроме стандартного CPython, включены возможности Stackless, Psyco, модификация AST «на лету» и многое другое. В проект интегрированы возможности анализа Python-кода и трансляция в другие языки и байткоды виртуальных машин (Си, LLVM, Javascript, .NET с версии 0.9.9). Начиная с 0.9.0, возможна полностью автоматическая трансляция RPython в Си, в результате чего достигается скорость, приемлемая для использования (в 2—3 раза медленнее, чем CPython при отключённом JIT для версии 0.9.9). По умолчанию PyPy поставляется со встроенным JIT компилятором, с помощью которого он способен работать намного быстрее CPython.
Numba[en] — Jit-компилятор на основе LLVM с поддержкой NumPy.
PyS60[66] — реализация языка для смартфонов фирмы Nokia на платформе Series 60.
IronPython — Python для .NET Framework и Mono. Компилирует Python программы в MSIL, таким образом предоставляя полную интеграцию с .NET-системой[75].
Stackless — также написанная на Си реализация Python. Это не полноценная реализация, а патчи к CPython. Предоставляет расширенные возможности многопоточного программирования и значительно большую глубину рекурсии.
Python for .NET[76] — ещё одна реализация Python для .NET. В отличие от IronPython эта реализация не компилирует Python код в MSIL, а только предоставляет интерпретатор, написанный на C#. Позволяет использовать .NET-сборки из Python кода.
Jython — реализация Python, использующая JVM в качестве среды исполнения. Позволяет прозрачно использовать Java-библиотеки[77].
python-safethread[70] — версия CPython без GIL, что позволяет одновременно исполнять Python потоки на всех доступных процессорах. Внесены также некоторые другие изменения.
Unladen Swallow — начатый Google проект по разработке высокоэффективного, максимально совместимого с CPython JIT-компилятора на базе LLVM. Согласно планам по развитию Python[78], планировалось перенести исходный код Unladen Swallow в CPython в версии 3.3. Но PEP-3146 был отменён в связи с отсутствием интереса к Unladen Swallow со стороны Google, основного спонсора разработки[79].
tinypy[80] — минималистическая версия Python. Часть возможностей CPython не реализована.
MicroPython — реализация Python 3 для встроенных систем с малым объёмом оперативной памяти[81].
Brython[82] — реализация языка на клиентском JavaScript, позволяющая писать браузерные скрипты на Python 3.
QPython[83] — реализация python для Android. Проект всё ещё на стадии тестирования, однако на qpython уже портированы некоторые самые необходимые библиотеки. Позволяет и работать в интерактивном режиме. Существует также Qpython3.
Do'stlaringiz bilan baham: |