Что такое интерпретатор и как он работает?

Интерпретатор — простыми словами, это программа исполняющая другие программы. Когда вы запускаете, написанную на Python, программу, интерпретатор читает её и приводит в исполнение содержащиеся в ней инструкции, выступая прослойкой между кодом и «железом».

Самая простая программа, представляет собой текстовый файл, содержащий операторы Python. Например создайте файл example.py, откройте его в любом текстовом редакторе, который вам нравится и запишите, в него, простейший классический сценарий:

print('hello world')


и сохраните. Обычно, для общей согласованности, всем python файлам, дают имена, оканчивающиеся на .py. Но если опустить формальности, такая схема именования, обязательна только для файлов, которые будут использоваться при импорте.
Давайте переименуем, созданный нами файл "example.py" в "example" и попробуем его запустить, как обычно:

shell % python example
hello world


как видите он без проблем запустился.
После запуска Python внутренне компилирует исходный код в байт-код. Под компиляцией, в данном случае, понимается трансляция, а под байт-кодом низкоуровневое представление исходного кода. Грубо говоря, Python транслирует каждый оператор исзодного кода в группу иструкций байт-кода, разбивая их на отдельные шаги. Трансляция в байт-код происходит по мере выполнения. Байт-код можно найти в каталоге с исходным кодом, который называется pycache, внутри будут файлы с расширением .рус — это и есть байт-код. При следующем запуске, Python пропустит шаг трансляции и сразу загрузить файлы .pyc, при условии, что файл с исходным кодом не менялся и не менялась используемая версия Python. Python автоматически проверяет отметки времени последней модификации для файлов исходного кода и байт-кода, чтобы выяс­нить, когда они должны быть перекомпилированы — если вы отредактируете и
повторно сохраните исходный код, то байт-код будет автоматически создан за­ново при следующем запуске программы.
Символ 'c', на конце расширения '.pyc' — означает compiled, т.е. скомпилированный.

Байт-код сохраняется лишь для тех файлов, которые
импортируются, но не для файлов верхнего уровня программы, выполняемых толь­ко как сценарии.
После того, как программа скомпилирована в байт-код , она отправляется на выполнение в виртуальную машину Python (PVM) — это компонент, который уже понастоящем исполняет ваш код и является, можно сказать, последним этапом "интерпретатора Python".
В Python обычно отсутствует шаг “сборки”: код выполняется сразу, а байт-код Python не является дво­ичным машинным кодом. Байт-код — это представление, специфичное для Python. Поэтому некоторый код на Python выполняется медленнее, чем тот же код на C/C++.

#pythonbasics #pythoninterpreter #python

Поблагодарить
🔥2