Как Python запускает программы?

1. Когда Python получает команду запустить сценарий:

  • Сценарий компилируется в байт код
  • Далее байт код будет передан виртуальной машине

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

Байт-код сохраняется в файле с расширением .pyc, после запуска скрипта *.py. При повторном запуске скрипта интепретатор не будет компилировать код заново, а использует уже имеющийся *.pyc.

  • если *.pyc  отсутствует, то он будет создан при запуске файла содержащего сценарий на языке python;
  • если *.pyc не удаётся создать и сохранить на диске, то байт-код будет записан в память и уничтожен после завершения программы;
  • о необходимости заново компилировать исходный текст сценария или не компилировать, Python узнаёт сравнивая время последнего изменения файла с исходным кодом и время последнего изменения файла с байт кодом.

2. Подробнее о виртуальной машине (PVM — python virtual maschine)

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

file.py → file.pyc → PVM

  • байт-код НЕ является двоичным машинным кодом. Байт код внутреннее представление программы на языке Python
Sky

Об авторе Sky

Прописан в интернет. Характер задорный, добродушный. Интроверт по натуре. Не любит хамов, халявщиков, гопников. Увлекается всякой технической ересью. Подписывайся на новые статьи http://xit.org.ru/rss
Запись опубликована в рубрике Python, Теория. Добавьте в закладки постоянную ссылку.

Комментарии запрещены.