В этой статье мы поговорим о компиляторах и интерпретаторах 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 проверка существования файла перед попыткой его использования является обычной задачей, особенно если вы…
При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи…
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…