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

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

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

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

print('hello world')

И сохраните. Обычно, для общей согласованности, всем python файлам, x дают имена, оканчивающиеся на .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

Поблагодарить: https://pay.cloudtips.ru/p/a4aeb3dd