+375 (29) 737-37-87
При взаимодействии человека и компьютера мостиком выступает высокоуровневый язык программирования. Высокоуровневые языки программирования создаются такими, чтобы писать на их было удобно человеку, компьютер такие языки не понимает. Компьютер — вычислительная машина, для которой понятны только наборы из нулей и единиц.
Так как же превратить наш исходный код во что-то, что могут прочитать компьютеры? Совсем, как в реальной жизни, для перевода с одного языка на другой обратиться к переводчикам. В программировании их называют трансляторами – это компилятор и интерпретатор. Оба делают перевод исходного кода в машинный, но делают это по-разному.
Компилятором называется транслятор, который получает файл с кодом, расшифровывает его и переводит в машинные коды целиком. Получается исполняемый файл, который можно запустить внутри той или иной операционной системы (например, исполняемый файл .exe для запуска в MS Windows). В результате работы компилятора пользователь может пользоваться программой, но не может прочитать ее исходный код.
Первый готовый к работе Компилятор был представлен в 1952 году Грейс Хоппер — американским учёным и коммодором флота США.
Интерпретатор – это транслятор, который запускает код построчно. Интерпретатор получает команду, написанную на языке программирования, читает ее и сразу же выполняет. Условно его работа может выполняться в интерактивном или пакетном режимах.
Интерактивный режим еще называют циклом «чтения – исполнения – печати» (Read-eval-print loop или REPL). Пользователь пишет в консоли какую-то команду и как только нажимает клавишу Enter, команда выполняется. Такой режим используют для быстрых подсчетов, отправки запросов и других действий, которым достаточно одной команды.
Пакетный режим используется для более крупных задач, которые неудобно писать построчно и выполнять сразу же. Пользователь пишет код в файле и сохраняет его с нужным расширением. Интерпретатор получает файл, построчно считывает написанный там код и выполняет его.
Первый Интерпретатор был создан в 1958 году Стивом Расселом - американским ученым-программистом, наиболее известным благодаря созданию «Spacewar!», одной из самых ранних видеоигр.
Интерпретатор можно сравнить с синхронным переводчиком, который сразу же озвучивает перевод. А компилятор — с литературным переводчиком, который переводит тексты, а потом отправляет перевод тем, кто будет с ним работать.
Компилятор и интерпретатор делают одну и ту же работу и у вас может возникнуть логичный вопрос — а что же лучше? Процесс компиляции или интерпретации? Тут нет очевидного ответа, ведь если бы он был, то один из этих трансляторов давно бы перестал существовать. У каждого из них есть свои преимущества и недостатки.
Интерпретация подходит для распространения небольших программ. При этом запускать интерпретируемую программу можно на любом процессоре или платформе – MacOS или Windows, например. Интерпретатор берет всю работу по совместимости на себя, для работы кода важно одно - чтобы у всех стоял интерпретатор.
Для крупных проектов выбирают компиляцию: она быстрее и безопаснее. Однако в этом случае придется позаботиться о совместимости, хотя мы уже привыкли устанавливать только подходящий нашему «железу» софт.
Компиляция работает быстрее интерпретации, потому что компилятор запускается только один раз: делает перевод и отдает его процессору. Интерпретатор же запускается на каждой строке кода и нужен при каждом запуске программы. Кроме того, программный код в компиляторе уже переведен в машинный, поэтому требуется намного меньше времени для его исполнения.
Для интерпретаторов скорость является самым большим недостатком. Для каждой программы выполняется достаточно много переводов, фильтраций, что приводит к замедлению работы и мешает выполнению программного кода.
С помощью интерпретатора проще добавить дополнительные функции, не расширяя язык программирования. Также их проще переписать или перекомпилировать для новых платформ.
Написание же компилятора для процессора требует добавления множества функций, или полной переработки. Но как только компилятор написан, можно скомпилировать много интерпретаторов и на выходе получить перспективный язык.
Что все это значит для языка программирования Python?
Python является интерпретируемым высокоуровневым языком программирования. Это означает, что он наследует все описанные выше преимущества и недостатки процесса интерпретации. Отметим, что это вовсе не делает Python, как и любой другой язык программирования, «хорошим» или «плохим». Каждый язык индивидуален и добавляет свои уникальные особенности к обоим наборам.
А о том, каков именно язык программирования Python, мы расскажем в следующей статье!
Наш адрес: г. Могилев, ул. Чайковского, дом 11 (БЦ "БРИКС"), офис 214
Viber +375 (29) 737-37-87