Из статьи вы узнаете, из каких элементов состоит Интерпретатор Python, как он работает и на каком языке он написан.
Оглавление скрыть
Компилируемые и интерпретируемые языки программирования
Любые языки программирования высокого уровня ближе к человеческому, чем к машинному языку. И код, написанный на таких языках программирования нужно перевести в понятный для компьютера язык (машинный язык). Такими переводчиками с человеческого языка на машинный язык стали компиляторы и интерпретаторы. Поэтому все высокоуровневые языки программирования делятся на компилируемые и интерпретируемые.
Если язык программирования компилируемый, например С. То написав код программы, вы должны вначале этот код скомпилировать, то есть целиком перевести на машинный язык. Далее, полученный бинарный файл можно будет выполнять. Такие, бинарные файлы, платформа-зависимы, то есть для разных операционных систем или типов процессоров нужно отдельно компилировать высокоуровневый код. Зато бинарные файлы очень быстрые, ведь в них записан машинный код, который выполняется напрямую процессором.
Что такое команды и их параметры? — Уроки Python #1 | Космо
А если язык программирования интерпретируемый, например Python. То написанный код может выполняться на любой операционной системе, главное чтобы там был установлен Интерпретатор этого языка. Это называется – платформонезависимость. Интерпретатор построчно выполняет высокоуровневый код.
При этом, построчно переводит инструкции с высокоуровневого языка на машинный язык. Такое выполнение намного медленнее, чем выполнение скомпилированной программы.
Интерпретатор Python
Как вы уже поняли, язык Python – интерпретируемый. Это означает, чтобы в вашей операционной системе работал код, написанный на Python, вам нужно установить Интерпретатор Python.
Выполняет написанный высокоуровневый код, не процессор, а именно Интерпретатор. Например, чтобы выполнить код на языке Python, вы обычно выполняете подобную команду:
# python3 program.py
То есть вы просите интерпретатор (python3) выполнить код, написанный в файле (program.py). Интерпретатор читает и выполняет файл и выдаёт нам результат.
Но давайте поближе познакомимся с Интерпретатором Python, ведь он не так прост как кажется. Он написан на языке С, и что более интересно, он содержит в себе компилятор. Этот встроенный компилятор переводит написанный на языке Python код в байт-код.
Байт-код это не машинный код, то-есть он не выполняется напрямую на процессоре. Зато он выполняется быстрее, чем выполнялся бы высокоуровневый код на Python. А ещё байт-код остаётся платформонезависимым, то есть не зависит от операционной системы и типа процессора. Байт-код выполняется на специальной виртуальной машине, которая тоже встроена в Интерпретатор Python (Python VM – PVM).
Теперь схема становится более интересной, ведь мы знаем что внутри интерпретатора работает компилятор и виртуальная машина:
Python. Команды print() input()
- Мы просим интерпретатор (python3) выполнить написанную программу (program.py).
- Интерпретатор забирает файл программы и отдаёт её компилятору.
- Компилятор создаёт байт-код (program.pyc) и выполняет его на виртуальной машине (PVM).
- И в конце мы получаем результат.
При этом, когда компилятор создавал байт-код, то он положил его в каталог _pycache_ (файл program.pyc). При следующем запуске этой же программы повторная компиляция не потребуется, что ускорит выполнение.
Такая схема ускоряет выполнение написанного на Python кода. А такой интерпретатор называется CPython – ведь он написан на C.
Некоторые, умные люди, посмотрели на эту схему и сделали другие реализации интерпретаторов для Python:
- Jython – компилятор компилирует исходный код в байт-код Java, а затем выполняет его на JVM.
- IronPython – подобная реализация для .NET.
- Есть и другие реализации Интерпретаторов Python.
Итог
Думаю стало понятнее, почему в каталоге с вашей программой может появляться каталог _pycache_ с файлами с расширением .pyc. И почему повторное выполнение программ происходит быстрее.
По этой же теме можете посмотреть интересное видео.
Возможно Вам также понравиться следующая статья – Python 3. Вывод текста на консоль. Функция print().
Источник: sysadminium.ru
Чтобы компьютер понимал команды на языке Python, была придумана специальная программа —
Компьютеры понимают только язык сигналов тока, состоящий из 1 и 0. Чтобы компьютер понимал команды на языке Python, была придумана специальная программа — интерпретатор.
При распознавании команды он спирается на тип данных переменной. Благодаря этому некоторые операторы могут иметь несколько значений. Например, оператор + может использоваться как для нахождения суммы чисел, так и для объединения строк.
Интересные вопросы
Предмет: Русский язык, автор: Акира69
Помогите пожалуйста!) Вставить буквы. Внезапно небо прорв_лось с холодным рлам_нем и громом, и ветер нач_л (в)кривь и (в)кось к_чать сады за нашим домов. а туча шла,гора горой! Кр_чал п_стух,металось стадо, и только церковь под грозой м_лчала набожно и свято.
2 месяца назад
Предмет: Английский язык, автор: Alissium
ПОМОГИТЕ! Чем скорее, тем лучше с:
Read the limerick and describe what really happened.
Use the Past Simple and the Past Continuous.
Two serious gents in the middle of night
Were having debates on the property right
They hardly escaped the boot, which I threw.
I am sure my actions were fair and true,
As thus I prevented the fight.
2 месяца назад
Предмет: Українська мова, автор: ivanyxa4
2 месяца назад
Предмет: Математика, автор: dmau8567
Помогите пожалуйста! Даю 20 БАЛЛОВ!
(1) №3 Закрась клетки с числами, которые можно подставить в неравенство так, чтобы оно было верным.
100∠ а ∠ 1000 Ответы: 99, 123, 400, 750, 999, 9999.
10∠ а ∠ 100 Ответы: 9, 12, 400, 75, 999, 99.
1∠ а ∠ 10 Ответы: 9, 12, 40, 7, 999, 99.
1000∠ а ∠ 10 000 Ответы: 990, 123, 4000, 750, 9990, 90 000.
(2) № 4 Буквой x обозначили результат деления. Поставь знак + в те клетки, для которых неравенство верно.
х 10∠ х ∠ 1000 100∠ х ∠ 1000 1000∠ х∠ 10000
8024:4
9135:15
5280:22
4950:50
19800:20
60000:1200
83230:41
· Проверь себя вычислениями.
Источник: sous-otvet.net
Чтобы компьютер понимал команды на языке python была придумана специальная программа
Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
Наши условия использования и конфиденциальности
Public user contributions licensed under cc-wiki license with attribution required
Источник: stepik.org