interpreter
В этой статье мы поговорим о компиляторах и интерпретаторах Python и обсудим 7 самых популярных из них: CPython, Jython, IronPython, ActivePython, Nuitka, PyJS и Stackless Python.
Итак, давайте начнем.
Возможно, вы слышали, что Python называется интерпретируемым языком программирования. Это означает, что компилятор преобразует исходный код (.py-файл) в байт-код (.pyc-файл), который затем исполняется виртуальной машиной Python (PVM).
А теперь рассмотрим наш список компиляторов и интерпретаторов Python:
Это наиболее распространённая, эталонная реализация Python. CPython может быть определен как интерпретатор и компилятор, поскольку он компилирует код Python в байт-код перед его интерпретацией.
Характеристики:
Особенностью CPython является то, что он использует глобальную блокировку интерпретатора (GIL) для каждого процесса интерпретатора CPython. Это означает, что в рамках одного процесса в любой момент времени только один поток может обрабатывать байт-код Python. Параллельное выполнение кода может быть достигнуто только с помощью отдельных процессов интерпретатора CPython, которыми управляет многозадачная ОС. В Python есть модуль multiprocessing, который упрощает создание процессов.
Jython является преемником JPython. Это реализация Python для виртуальной машины Java. Jython одновременно и компилятор, и интерпретатор.
Характеристики:
Jython компилирует исходный код Python в байт-код Java. Это означает, что мы можем запустить его на любой машине, на которой работает JVM (виртуальная машина Java). Программы, выполняемые в среде Jython, могут одновременно использовать классы языков Java и Python.
Это реализация Python, предназначенная для платформы Microsoft .NET или Mono.
Характеристики:
IronPython поддерживает динамическую компиляцию и интерактивную консоль. Скрипты Python могут взаимодействовать с объектами .NET.
ActivePython — это дистрибутив интерпретатора языка программирования Python от компании ActiveState. Распространяется в версиях для Microsoft Windows, Windows NT, Mac OS X, Linux, Solaris, AIX и HP-UX. ActivePython включает более 300 популярных пакетов Python, прошедших предварительную проверку на наличие устаревших или уязвимых версий, несовместимости и неправильного лицензирования.
Nuitka — это транспайлер, который транслирует код Python в исполняемые файлы или исходный код C/C++.
Характеристики:
Nuitka работает с различными версиями Python и позволяет создавать автономные приложения, даже когда Python не установлен на целевом компьютере.
PyJS — это фреймворк для для разработки веб-приложений. Он позволит вам использовать Python для разработки как клиентской части веб-приложений, так и десктоп-приложений.
Характеристики:
Раньше PyJS назывался Pyjamas. Он транслирует ваш код Python в JavaScript и позволяет запускать его в браузере. PyJS поставляется с AJAX-фреймворком и библиотекой виджетов.
Stackless Python — это интерпретатор Python. Он назван так из-за отказа от использования стандартного стека вызовов языка C в пользу собственного стека.
Характеристики:
Особенностью Stackless являются микропотоки (microthreads), которые позволяют избежать чрезмерного расхода системных ресурсов, присущего стандартным потокам операционной системы. В дополнение к стандартным возможностям Python, Stackless добавляет поддержку сопрограмм, коммуникационных каналов и сериализации задач.
Итак, мы рассмотрели некоторые из самых популярных компиляторов и интерпретаторов Python. И можем заключить, что Python не ограничивается только CPython, основной реализацией. Также существуют другие реализации, среди которых можно выбрать ту, которая больше всего подходит для решения поставленных задач.
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…