Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Python и запуск програм

Подписаться на эту рубрику по RSS

Как программы запускаются человеком и как Python выполняет их. Мы рассмотрим интерпретатор Python.

Разновидности модели выполнения

Прежде чем двинуться дальше, я должен заметить, что внутренний поток 

выполнения, описанный в предыдущем разделе, отражает современную 

стандартную реализацию интерпретатора Python, которая в действительности не

является обязательным требованием самого языка Python. Вследствие этого

модель выполнения склонна изменяться с течением времени. Фактически уже

существуют системы, которые несколько меняют картину, представленную на

рис. Давайте потратим несколько минут, чтобы ознакомиться с наиболее

заметными изменениями. Далее...

Читатели, имеющие опыт работы с компилирующими языками 

программирования, такими как С и C++, могут заметить несколько отличий в модели 

выполнения Python. Первое, что бросается в глаза, - это отсутствие этапа сборки,

или вызова утилиты «make»: программный код может запускаться сразу же,

как только будет написан. Второе отличие: байт-код не является двоичным 

машинным кодом (например, инструкциями для микропроцессора Intel). Байт-

код - это внутреннее представление программ на языке Python.

По этой причине программный код на языке Python не может выполняться

так же быстро, как программный код на языке С или C++, о чем уже 

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

микропроцессор, и чтобы выполнить байт-код, необходима дополнительная 

интерпретация, инструкции которого требуют на выполнение больше времени,

чем машинные инструкции микропроцессора. С другой стороны, в отличие от

классических интерпретаторов, здесь присутствует дополнительный этап 

компиляции - интерпретатору не требуется всякий раз снова и снова 

анализировать инструкции исходного текста. В результате Python способен обеспечить

скорость выполнения где-то между традиционными компилирующими и 

традиционными интерпретирующими языками программирования. Далее...

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

Как только программа будет скомпилирована в байт-код (или байт-код будет

загружен из существующих файлов .рус), он передается механизму под 

названием виртуальная машина Python (PVM - для любителей аббревиатур). 

Аббревиатура PVM выглядит более внушительно, чем то, что за ней стоит на самом

деле, - это не отдельная программа, которую требуется устанавливать. 

Фактически PVM - это просто большой цикл, который выполняет перебор инструкций в байт-коде, одну за одной, и выполняет соответствующие им операции.

PVM - это механизм времени выполнения, она всегда присутствует в составе

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

ваши сценарии. Формально - это последняя составляющая того, что называют

«интерпретатором Python». Далее...

Python 3 - Компиляция в байт-код

Когда вы запускаете программу, практически незаметно для вас Python сначала компилирует ваш исходный текст (инструкции в файле) в формат, известный под названием байт-код. Компиляция - это просто этап перевода программы, а байт-код - это низкоуровневое, платформонезависимое представление исходного текста программы. Интерпретатор Python транслирует каждую исходную инструкцию в группы инструкций байт-кода, разбивая ее на отдельные составляющие. Такая трансляция в байт-код производится для повышения скорости - байт-код выполняется намного быстрее, чем исходные

инструкции в текстовом файле. В предыдущем абзаце вы могли заметить фразу - практически незаметно для вас. Если интерпретатор Python на вашем компьютере обладает правом записи, он будет сохранять байт-код вашей программы в виде файла с расширением .рус (.рус - это компилированный исходный файл .ру). Вы будете обнаруживать эти файлы после запуска программ по соседству с файлами, содержащими исходные тексты (то есть в том же каталоге).

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

Выполнение программы на Python 3

Выполнение программы на Python 3
Что стоит за словами «написать и запустить программу на языке Python» зависит от того, как вы смотрите на эту задачу - как программист или как интерпретатор Python. Обе точки зрения определяют свой взгляд на программирование.

С точки зрения программиста

Программа на языке Python, в самой простой форме, - это обычный текстовый файл, содержащий инструкции Python. Например, следующий файл, с именем scriptO.py, - это один из простейших сценариев на языке Python, который только можно придумать, но его официально можно назвать программой на языке Python:

print('hello world')
pnntB ** 100)

Этот файл содержит две инструкции print, которые просто выводят строку (текст в кавычках) и результат числового выражения B в степени 100) в выходной поток. Не надо сейчас стараться вникнуть в синтаксис языка - в этой главе нас интересует лишь сам порядок запуска программ.

 Позднее я расскажу об инструкции print и объясню, почему можно возвести число 2 в степень 100, не опасаясь получить ошибку переполнения.Далее...

Введение в интерпретатор Python

До сих пор я говорил о Python в основном как о языке программирования. Но в текущей реализации это еще и программный пакет , который называется интерпретатором. Интерпретатор - это такой модуль, который исполняет другие программы. Когда вы пишете код на языке Python, интерпретатор Python читает вашу программу и выполняет составляющие ее инструкции. По сути дела интерпретатор - это слой программной логики между вашим программным кодом и аппаратурой вашего компьютера.

В процессе установки пакета Python на компьютер создается ряд программных компонентов - как минимум, интерпретатор и библиотека поддержки. В зависимости от особенностей использования интерпретатор Python может иметь вид исполняемой программы или набора библиотек, связанных с другой программой. В зависимости от версии Python сам интерпретатор может быть реализован как программа на языке С, как набор классов Java или в каком-либо другом виде.

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

Далее...