Python вид программного обеспечения

Интерпретаторы, компиляторы, трансляторы Python

Основы

Python – это интерпретируемый язык программирования. Это означает, что код исполняется «на лету», строка за строкой. К примеру, используя Python Shell, можно вводить код по одной строке, и каждая из них будет тут же выполнена интерпретатором. Есть и альтернативные реализации интерпретатора и даже компиляторы.

Интерпретатор Питона работает следующим образом:

— сперва исходный код, который написан программистом и хранится в файлах с расширением .py, преобразуется в байт-код (файлы с расширением .pyc). Байт-код – это промежуточный слой между человеко-читаемым кодом и кодом на языке процессора.

— затем байт-код исполняется виртуальной машиной.

Как Вы видите, процесс разбит на два шага. Это сделано с единственной целью – ускорение. Так работает стандартная реализация – CPython, но есть и другие.

CPython

Эта реализация интерпретатора – эталон, поскольку именно она поставляется в составе языка с официального сайта Пайтона. Как можно догадаться по названию, написан он на языке C, а разработан при поддержке Python Software Foundation.

Отличительной чертой CPython можно назвать глобальную блокировку интерпретатора (GIL). Это архитектурное решение вызвало огромное количество споров. Суть заключается в следующем: эта блокировка не позволяет выполнять потоки параллельно. Это избавляет разработчика от многих головных болей, таких как синхронизация, совместное использование памяти и тому подобное. С другой стороны, из-за GIL, параллельное программирование доступно только при использовании отдельных процессов, что ощутимо медленнее параллельных потоков. Главным сторонником глобальной блокировки является сам создатель языка – Гвидо ван Россум.

В основном из претензий к GIL, динамической типизации и скорости самого Пайтона, и родились другие варианты интерпретатора.

Jython

Суть этого интерпретатора в том, что он компилирует исходный код не в байт-код виртуальной машины Python (PVM), а в байт-код виртуальной машины Java (JVM). Благодаря этому в коде на Питоне можно использовать классы Java. Главное же преимущество – JVM работает быстрее, особенно после последних крупных оптимизаций и, в некоторых тестах, показывает скорость выше C++.

IronPython

Этот интерпретатор скрещивает Python и .NET Framework. Здесь они могут свободно взаимодействовать – использовать библиотеки друг друга, в Питоне становятся доступны Windows Forms, C# и вся прочая инфраструктура. Как и CPython, написан интерпретатор на C.

ActivePython

Это ещё одна реализация, нацеленная, в основном, на пользователей операционной системы Виндовс. По сути, это стандартный CPython, к которому добавили инструменты комфортного взаимодействия с ОС и различную документацию и мануалы.

WinPython

Хотя нынешние версии CPython очень стабильны в операционной системе Windows, WinPython имеет несколько эксклюзивных функций. Поскольку WinPython является автономным дистрибутивом для Python, вам нужно только загрузить и распаковать его, чтобы начать работу. WinPython также поставляется с некоторыми из самых популярных библиотек Python для науки о данных и машинного обучения, таких как NumPy, Pandas и SciPy. Следовательно, вы можете сразу же работать с этими библиотеками Python.

WinPython поставляется с множеством встроенных функций, которые в большинстве случаев не требуются, например, компилятор C и C ++. Это может быть серьезным ограничением, поскольку нет возможности выбрать и загрузить только те функции, которые необходимы.

Nuitka

Nuitka — это не только компилятор (может создавать исполняемые файлы), но и транспайлер. Что такое транспиляция? Транспиляция — преобразование программы, при котором используется исходный код программы, написанной на одном языке программирования в качестве исходных данных, и производится эквивалентный исходный код на другом языке программирования. В данном случае этот язык – C или С++.

Nuitka полностью написана на Python.

PyJS

Компилятор PyJS переводит код Python в эквивалентный код JavaScript, чтобы он мог выполняться внутри веб-браузера. Используется для этого абстрактное синтаксическое дерево самого Python.

Stackless Python

Stackless Python — это усовершенствованная версия интерпретатора Python. Он назван так из-за отказа от использования стандартного стека вызовов языка C в пользу собственного стека.

Особенностью Stackless являются тасклеты (микропотоки), которые позволяют избежать чрезмерного расхода системных ресурсов, присущего стандартным потокам операционной системы. Она позволяет программисту пользоваться преимуществами многопоточного программирования без снижения производительности на примитивах синхронизации и без проблем с «гонками» (race conditions). Если правильно использовать дешёвые и лёгкие микропотоки Stackless, они позволяют улучшить структуру программы, получить более читаемый код и увеличить производительность труда программиста.

Cython

Cython — это не просто компилятор для Python; это языковое надмножество языка Python, который поддерживает взаимодействие с C/C ++. CPython написан на C, поэтому это язык, который обычно хорошо сочетается с Python. По своей сути, это промежуточный слой между Python и C/C++. Cython позволяет писать обычный Python-код с некоторыми незначительными модификациями, который затем напрямую транслируется в C-код. Но стоит помнить, что Вам придётся самостоятельно указать типы всех переменных – прощай динамическая типизация.

PyPy

Гидо ван Россум однажды сказал: «Если вы хотите, чтобы ваш код работал быстрее, вам, вероятно, следует просто использовать PyPy».

PyPy написан на Python и не требует изменений в коде. Это быстрая и эффективная альтернатива CPython. Запустив свою программу с его помощью, вы можете получить увеличение скорости до ста раз, не внося ни одного изменения в код. Однако, существует и ряд ограничений:

— может некорректно работать с подключенными к коду на Питоне библиотеками на Си

— перед запуском производит множество манипуляций над кодом, в целях оптимизации. Это делает бессмысленным его использование в небольших скриптах.

Pythran

Pythran предназначен для эффективной компиляции научных программ с использованием нескольких ядер и SIMD-инструкций.

Pyston

Ориентированный на высокую скорость Pyston является адаптацией Python. В нем используется компиляция «just-in-time» и множество других приемов для ускорения работы. По результатам некоторых тестов работает на 30% быстрее оригинальной реализации Python.

Разработчики Pyston приложили все усилия, чтобы сделать реализацию как можно менее болезненной в использовании. Главная цель в том, чтобы Python можно было использовать, просто набрав «Pyston» вместо «Python».

Skulpt

Skulpt — это реализация Python в браузере, нет необходимости в дополнительной обработке, плагинах или поддержке на стороне сервера, необходимых для запуска Python в веб-браузере. Любой код Python, написанный в Skulpt, выполняется непосредственно в веб-браузере. Хотя Skulpt переводит код Python в код JS, он не облегчает выполнение последнего.

Transcrypt

Компилятор Python следует упрощенному и мощному синтаксису, не требуя дополнительных расширений. Transcrypt прекомпилирует в быстрый, читаемый JS-код, который можно отлаживать из исходного кода Python. Помимо беспрепятственного доступа к любой JS-библиотеке, Transcrypt также может работать поверх Node.js.

Благодаря поддержке иерархических модулей, локальных классов и множественного наследования Transcrypt может похвастаться гибкой и стабильной общей структурой.

Заключение

Несмотря на всё многообразие интерпретаторов, компиляторов и трансляторов Python, стоит помнить, что самой стабильной и актуальной, хоть и медленной, будет стандартная реализация интерпретатора – CPython. Так же это лучший выбор для новичков, которым надо узнать только язык, а не нюансы его реализации. Если Вам нужно выполнять Питон в браузере, стоит рассмотреть трансляторы в JavaScript. Так же решением может быть относительно молодая, но очень перспективная технология, выходящая за рамки данного урока, — Web Assembly. Ну а за дополнительной скоростью, скорее всего, стоит обратиться к PyPy.

Источник

Приложения, которые можно написать на Python

Python известен своей универсальной природой, что делает его применимым практически во всех областях разработки программного обеспечения. Это самый быстрорастущий язык программирования, позволяющий разрабатывать любые приложения.

Покажу области приложения, в которых можно применить Python.

Приложения Python

1) Веб-приложения

Мы можем использовать Python для разработки веб-приложений. Он предоставляет библиотеки для обработки интернет-протоколов, таких как HTML и XML, JSON, обработка электронной почты, запрос, beautifulSoup, Feedparser и т. д. Одна из веб-фреймворков Python под названием Django используется в Instagram. Python предоставляет множество полезных фреймворков, и они приведены ниже:

  • Фреймворк Django и Pyramid(для тяжелых приложений)
  • Plone и Django CMS(Расширенное управление контентом)

2) Настольные приложения с графическим интерфейсом

GUI – это графический интерфейс пользователя, который обеспечивает беспрепятственное взаимодействие с любым приложением. Python предоставляет библиотеку Tk GUI для разработки пользовательского интерфейса. Ниже приведены некоторые популярные библиотеки графического интерфейса.

  • Ткинтер
  • wxWidgetM
  • Kivy(используется для написания мультитач-приложений)
  • PyQt или Pyside

3) Консольное приложение

Консольные приложения запускаются из командной строки или оболочки. Эти приложения представляют собой компьютерные программы, которые используются для выполнения команд. Этот вид приложений был более популярен в компьютерах старого поколения. REPL, что означает цикл Read-Eval-Print делает его наиболее подходящим языком для приложений командной строки.

Python предоставляет множество бесплатных библиотек или модулей, которые помогают создавать приложения командной строки. Необходимые библиотеки ввода-вывода используются для чтения и записи. Это помогает анализировать аргумент и создавать текст справки консоли прямо из коробки. Существуют также расширенные библиотеки, которые могут разрабатывать независимые консольные приложения.

4) Разработка программного обеспечения

Python полезен для процесса разработки программного обеспечения. Он работает как язык поддержки и может использоваться для построения контроля и управления, тестирования и т. д.

  • SCons используется для построения контроля.
  • Buildbot и Apache Gumps используются для автоматической непрерывной компиляции и тестирования.
  • Round или Trac для отслеживания ошибок и управления проектами.

5) Научно-числовой

Язык Python – наиболее подходящий язык для искусственного интеллекта или машинного обучения. Он состоит из множества научных и математических библиотек, что позволяет легко решать сложные вычисления.

Реализация алгоритмов машинного обучения требует сложных математических расчетов. Python имеет множество научных и числовых библиотек, таких как Numpy, Pandas, Scipy, Scikit-learn и т. д. Ниже приведены несколько популярных фреймворков машинных библиотек.

6) Бизнес-приложения

Бизнес-приложения отличаются от стандартных. Электронная коммерция и ERP – это пример бизнес-приложения. Этот вид приложений требует масштабируемости и удобочитаемости, и Python предоставляет все эти функции.

Oddo – это пример универсального приложения на основе Python, которое предлагает ряд бизнес-приложений. Python предоставляет платформу Tryton, которая используется для разработки бизнес-приложений.

7) Аудио или видео приложения

Python гибок для выполнения множества задач и может использоваться для создания мультимедийных приложений. Некоторые мультимедийные приложения, созданные с использованием Python, – это TimPlayer, cplay и т. д. Несколько мультимедийных библиотек приведены ниже.

8) Приложения 3D CAD

САПР(автоматизированное проектирование) используется для проектирования инженерной архитектуры. Он используется для создания трехмерного представления части системы. Python может создать приложение 3D CAD, используя следующие функции.

9) Корпоративные приложения

Python можно использовать для создания приложений, которые можно использовать на предприятии или в организации. Например OpenERP, Tryton, Picalo и т. д.

10) Приложение для обработки изображений

Python содержит множество библиотек, которые используются для работы с изображением. Изображение может быть изменено в соответствии с нашими требованиями. Ниже приведены некоторые библиотеки обработки изображений.

Источник

Читайте также:  Https ibank chelindbank ru registration html
Оцените статью