Найти в Дзене
proger ЧАЙНИК

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

Вы когда-нибудь задумывались о том, что значит писать программы на Python? Как правило, обычный программист просто запускает скрипт, сработала какая-то "магия" и вуаля, программа запустилась! Что имеется в виду по под "магией"?
Если вы какое-то время программируете, вы, возможно слышали такие термины как интерпретируемые или компилируемые языки. И, скорее всего, вы слышали, что Python -
Оглавление

Вы когда-нибудь задумывались о том, что значит писать программы на Python? Как правило, обычный программист просто запускает скрипт, сработала какая-то "магия" и вуаля, программа запустилась! Что имеется в виду по под "магией"?

Если вы какое-то время программируете, вы, возможно слышали такие термины как интерпретируемые или компилируемые языки. И, скорее всего, вы слышали, что Python - интерпретируемый, но без каких-либо подробностей. Вот давайте во всем разбираться!

Сейчас процесс выполнения программы должен выглядеть примерно так:

-2

А если принять в расчет то, что Python интерпретируемый язык, получится так:

-3

Отлично, с этим разобрались. Зачастую большинство питонщиков останавливаются на этом шаге и не разбираются в подробностях. Да, конечно, как правило, достаточно знать, что "Python – это интерпретируемый язык программирования" и всё. Ну а мы пойдем копать глубже!

Интерпретатор

В общем, в чем заключается процесс интерпретации? Отчасти можно сказать, что это похоже на чтение программы. Некоторое программное обеспечение просто «читает» вашу программу сверху вниз, построчно выполняя то, что в ней написано. Это ПО, как вы уже догадались, называется интерпретатором, который является частью стандартного установочного пакета Python. По факту, интерпретатор может быть написан на любом языке программирования. Стандартный интерпретатор написан на C и называется CPython. Есть и другие интерпретаторы: Jython, который транслирует Python код в Java-совместимый байт-код, который позже исполняется виртуальной машиной Java, а также IronPython, PyPy и др.

Теперь попробуем понять, как же на самом деле происходит интерпретация:

-4

По факту, шаг компиляции состоит из нескольких шагов. Сперва компилятор превращает ваш код в так называемый байт-код. Байт-код тем временем низкоуровневый, платформы-независимый и более эффективный код. Но он пока что не бинарный машинный код, как инструкции для чипов Intel и AMD.

Виртуальная машина Python

После компиляции байт-код передается в PVM (Python Virtual Machine). Хотя это звучит довольно эффектно, на самом деле это не что иное, как большой кусок кода, который выполняет итерацию по инструкциям байтового кода, полученным от компилятора, и выполняет их одну за другой, тем самым выполняя желаемые операции, указанные нами. Фактически, то, что действительно выполняет ваш код, так это наш уже знакомый PVM. Теперь мы можем сказать, что это последний этап выполнения любой программы Python. Вся эта сложность намеренно скрыта от программиста. Часть интерпретации полностью автоматизирована, поэтому обычно нам не нужно об этом думать. Просто помните: программисты на Python просто пишут код и запускают файлы, все остальное делает сам Python.

Заключение

Вот теперь-то мы можем с уверенностью сказать, что Python – это интерпретируемый язык, но перед интерпретацией присутствует процесс компиляции в байт-код. И соответственно, выполнение Python-программы подразумевает два действия: компиляцию и интерпретацию.

А на этом всё. Если вам понравилась статья, делитесь со своими друзьями, ставьте лайки, комментируйте.

Вам может быть интересно: