Интерпретатор программы что это

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

Интерпретатор (interpreter) — программа или техническое средство, выполняющее интерпретацию, а также вид транслятора, осуществляющего пооперационную (покомандную) обработку и выполнение исходной программы или запроса. В отличие от компилятора, который осуществляет трансляцию всей программы высокого уровня в машинные коды один раз без ее выполнения (создает объектную программу), интерпретатор транслирует исходную программу команда за командой каждый раз при выполнении и не создает объектного модуля. За счет такого режима выполнение программы происходит медленнее, чем в случае ее обработки транслятором, однако при обработке интерпретатором программы выполняются сразу, без промежуточной стадии трансляции.

Интерпретаторы — трансляторы языков программирования, работают на отличающемся от компиляторов принципе. Интерпретаторы не производят исполняемого машинного кода. Они берут исходный текст программы на языке программирования и выполняют его сами строка за строкой.

КАК РАБОТАЕТ ИНТЕРПРЕТАТОР PYTHON (CPython)

При этом интерпретатор извлекает из файла с исходным текстом одну команду, распознает ее и вызывает те или иные функции операционной системы. Интерпретатор определяет команду и переводит (интерпретирует) ее так, чтобы операционная система поняла, что от нее хотят. Скорость выполнения программ в режиме интерпретации намного ниже, чем у компилированного кода, за счет того, что работа программы идет не напрямую с центральным процессором на языке машинных команд, а через программу-посредника, которая и тратит большое количество времени на распознавание исходного текста. В отличие от интерпретаторов, компиляторы «знакомятся» с исходными текстами программы всего один раз, когда делают из текста на языке программирования машинный код.

Простые интерпретаторы анализируют и выполняют (интерпретируют) программу последовательно (покомандно или построчно). Синтаксические ошибки обнаруживаются, когда интерпретатор приступает к выполнению команды (строки) содержащей ошибку. Сложные интерпретаторы компилирующего типа перед выполнением производят компиляцию исходного кода программы в машинный или «промежуточный код». Они быстрее выполняют большие и циклические программы, не занимаются анализом исходного кода в реальном времени. Некоторые интерпретаторы для начинающих программистов (преимущественно, для языка Бейсик) могут работать в режиме диалога, добавляя вводимую строку команд в программу (в памяти) или выполняя команды непосредственно.

Интерпретация (в программировании)

Интерпретация языков программирования, один из методов реализации языков программирования на электронных вычислительных машинах (ЭВМ). При И. каждому элементарному действию в языке соответствует, как правило, своя программа, реализующая это действие, и весь процесс решения задачи представляет собой моделирование на ЭВМ соответствующего алгоритма, записанного на этом языке. При И. скорость решения задач обычно значительно ниже, чем при других методах, однако И. легче реализуется на ЭВМ, а во многих случаях (например, при моделировании работы одной ЭВМ на другой) оказывается и единственно пригодной.

Отличие интерпретируемого языка программирования от компилируемого для самых маленьких и нубов.

Источник: studfile.net

Особенности интерпретаторов

Интерпретатор и компилятор – два элемента, которые отвечают за непосредственное преобразование высокоуровневого языка программирования или сценария в машинный код. Несмотря на то, что данные компоненты выполняют одни и те же операции, они отличаются друг от друга.

Далее предстоит разобраться с тем, что собой представляют интерпретаторы и компиляторы. Рассмотрим ключевые особенности каждого «преобразователя» кода, наглядные примеры работы, а также их достоинства и недостатки. Все это пригодится как новичкам, так и опытным разработчикам.

Компиляция

Компилятор – это специальная программа на компьютере. Она переводит имеющийся код с одного языка разработки на другой. Популярный инструмент, без которого трудно представить современное программирование.

Компиляторы берут приложения целиком, а затем преобразовывают в исполняемый компьютерный код. Чтобы справиться с поставленной задачей, требуется целое программное обеспечение. Связано это с тем, что современные компьютеры понимают лишь то, что выражено при помощи двоичных кодов.

У интерпретаторов и компиляторов языков есть одна цель – преобразовать исполняемое приложение в машинный код. После выполнения процедуры считывания устройство будет успешно распознавать имеющийся контент. Примеры – это приложения, интерпретация которых проведена через C или C++.

Здесь стоит обратить внимание на следующие моменты:

Читайте также:
Программа степ что за программа

  1. Компиляторы применяются для программ, которые переводят исходное приложение с высокого уровня на язык разработки более низкого.
  2. Compiler выполняет различные функции. Он может организовывать предварительную обработку данных, семантический анализ, парсинг, а также оптимизацию контента. Это делает работу с приложением более удобным и простым.

Выше – пример того, как выглядит компиляция исходного кода той или иной программы.

Сильные стороны

Компиляторы имеют далеко не одно преимущество. К сильным сторонам соответствующих компонентов относят следующие моменты:

  1. Программный код уже переведен в машинный. На его обработку требуется намного меньше времени.
  2. Документы типа .exe выполняются быстрее, чем исходный код. Объектные программы сохраняются. Это делает приложение более удобным – оно может быть запущено в любое удобное пользователю время.
  3. Полученные объектные приложения сложнее скорректировать. Такие утилиты будут обладать надежной защитой.

А еще программирование с использованием компиляторов предусматривает проверку исходного кода на синтаксические ошибки. Это делает процесс написания софта более быстрым и удобным. Обнаруженная ошибка многими языками будет подчеркиваться. Устранить ее станет намного проще даже новичкам.

Слабые стороны

Несмотря на достоинства, рассматриваемый инструмент имеет недостатки. К ним относят такие моменты:

  1. Использование большого количества памяти на компьютере. Связано это с особенностями выполняемых преобразований.
  2. Затраты по времени. Процесс формирования объектного приложения производится не моментально.
  3. Толкования исходного кода должны быть 100% достоверными и однозначными. В противном случае сформировать объектное программное обеспечение не получится.

Это – только один из двух доступных вариантов преобразования исходного кода. Теперь можно рассмотреть интерпретаторы языков и их особенности.

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

Для преобразования приложений могут использоваться разные инструменты. Программы иногда используют интерпретаторы (interpreters). Так называют специальные компьютерные приложения, которые занимаются преобразованием каждого программного оператора высокого уровня. На выходе получается машинный код.

Сюда включены разные коды: исходные, предварительно скомпилированные, а также разнообразные сценарии.

Интерпретатор языка – машинная программа. Она непосредственно выполняет набор инструкций, а также отвечает за выполнение заданных функций. В ходе операций проводится интерпретация без компилирования. Примеры – языки Python, Matlab, Perl.

Интерпретаторы языков работают так же, как и compilers. Они отвечают за преобразование ЯП высокого уровня в более низкий. А именно – в машинный. Но interpretator выполняет функции при их непосредственном запуске.

Плюсы

Среди основных достоинств интерпретаторов выделяют:

  1. Облегчение работы с исходным кодом.
  2. Использование минимального объема памяти устройства. Связано это с тем, что у интерпретируемых программ используется принцип преобразования по одной инструкции раз за разом.
  3. Вы выполните отладку утилиты намного быстрее и комфортнее. Связано это с тем, что программа-интерпретатор выполняет связку обнаруженного сообщения об ошибке с обрабатываемым контентом.

Такой вариант помогает ускорить исходный исполняемый файл, а также делает работу написанного софта более комфортной на устройствах с небольшим объемом памяти.

Минусы

Интерпретаторы языков кроме преимуществ имеет ряд недостатков. О них должен помнить каждый разработчик.

Интерпретация может затянуть время исполнения программы. Связано это с тем, что каждый раз для запуска нужно поэтапно преобразовывать имеющиеся функции. А еще программы-интерпретаторы выполняются только там, где имеется соответствующий инструментарий. Если на устройстве отсутствует interpreter, воспользоваться приложением не получится.

Как работают инструменты

Стоит обратить внимание на то, как работают рассматриваемые элементы. В случае с компилятором процессы проходят так:

  1. Компилятор создает программу.
  2. Проводится анализ всех операторов языка. На этом этапе сделаем проверку правильности.
  3. При обнаружении ошибок компилятор выдает соответствующее сообщение. В противном случае имеющийся контент переводится в машинный тип.

При компилировании допускается связывание различных кодовых файлов в программы, пригодные для запуска (пример – формат .exe). После этого имеющийся софт успешно запустится.

Интерпретатор работает иначе:

  • Происходит создание программы.
  • Построчно выполняются исходные операторы. Эти манипуляции реализовываются непосредственно во время исполнения программы.
  • Связь файлов отсутствует. Машинного кода тоже не будет.

Выше – примеры того, как выглядит работа компиляторов и интерпретаторов. Использование этих инструментов обуславливается конкретным языком разработки.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!

Источник: otus.ru

Что это — интерпретатор, и где он используется?

Практически каждый пользователь компьютерных сетей встречался с такой областью науки, как программирование – это невероятная вещь, которая появилась в середине 20 века и полностью перевернула наш мир. Сложно представить не только повседневную жизнь каждого без компьютера, но и даже общемировую ситуацию. Возможно, что мы бы до сих пор не могли нормально общаться с родственниками, которые не так уж и близко, если бы не известный всем нам интернет и операционные системы, обслуживающие обе эти вещи. В данной статье будет подробно рассказано, что это – интерпретатор, где используется и для чего нужен. Статья особенно будет полезна начинающим программистам, ведь подобную информацию не везде рассказывают.

Читайте также:
E staff программа что это такое

Что такое компиляторы и интерпретаторы?

Статья рассчитана на пользователей, которые хотя бы немного знают о том, как устроены сети, операционные системы и языки программирования. Если вы вообще не имеете никакого представления о перечисленном, то рекомендуем почитать, ибо информация будет выглядеть достаточно сумбурно.

с++ язык программирования

Для начал стоит разобраться, что же такое компилятор, ведь он буквально является основой основ. После написания кода на каком-либо языке он обязательно должен пройти стадию компиляции, т. е. сборки всех частей кода воедино. Дело в том, что проект всегда и обязательно разделяется на множество частей, каждая из которых выполняет лишь определенную роль. Будь то работа с сетью, файлами, пользователем и т. д. Такие куски кода могут быть написаны самим пользователем или взяты из стандартной библиотеки STL.

При взятии какого-либо элемента есть два варианта компиляции: автоматический и динамический. При автоматическом берутся все необходимые (включенные) библиотеки, а при динамическом — лишь выбранные части эти библиотек. Это весьма большая тема, поэтому рекомендуем прочитать про каждый способ отдельно.

программа на с++

Итак, все библиотеки, части кода в форме исходных файлов собраны, а что дальше? Правильно, теперь самое время заставить компьютер понимать наш код. Делается это для того, чтоб компьютер мог вообще взаимодействовать с пользователем. Промежуточным звеном между аппаратной и программной частью является полумашинный язык программирования – ассемблер, именно в этот язык интерпретатор переводит вами написанный код.

Из сказанного выше можно сказать, что интерпретатор – это определенная программа для перекодировки в полумашинный язык ассемблер. В следующей части статьи мы поговорим подробнее про современные компиляторы и интерпретаторы.

Самые популярные программы интерпретатора

В современном стиле программирования принято при создании нового языка совмещать все в одной программе. Чтобы программисту не пришлось пропускать весь код через несколько программ, теперь все объединено в одно приложение – компилятор.

Современные функции компилятора:

  1. Компиляция. Сборка всех фрагментов кода.
  2. Интерпретация. Создание полумашинного кода.
  3. Линковка. Связывания частей интерпретированного кода в памяти.

множество программируемых устройств

Итак, из этого можно еще лучше понять, насколько интерпретатор — это мощное средство, поскольку без него программирование было бы таким же, как и в 60-х годах 20 века, то есть невероятно сложным. Теперь надо рассказать, какие же интерпретаторы (в составе компиляторов) на данный момент самые популярные:

  1. MVS. Популярный компилятор от «Майкрософт» для языка программирования С++.
  2. Xcode. Используется для создания приложений под технику Apple.
  3. MinGW. Один из самых распространенных компиляторов для языков программирования С и С++. Является прямым конкурентом MVS.

В каких языках используются интерпретаторы?

В современном мире программирования чаще всего используют только самые популярные языки программирования, ведь именно они развиваются наиболее быстро, что позволяет воплотить весь потенциал программистов. Примером таких языков могут стать Java и СС++. Веб-языки не стоит относить сюда, потому что реализации их кода не требуются дополнительные приспособления, кроме рабочей станции и приложения, способного запустить код. Многие программисты считают лучшим интерпретатором Windows именно MVS, поскольку он разработан исключительно только для работы с операционной системной Windows.

Где можно найти объектные файлы?

После компиляции в папке с проектом создается специальный объектный файл – это и есть плод стараний компилятора. В операционной системе «Линукс» подобный файл использует расширение «*.о», т.е. от слова object. В операционной системе Windows этот процесс сразу перетекает в создание исполняемого файла, который можно дизассемблировать и получить тот же результат, что и при открытии файла с расширением «*.o».

программный код

В заключение

Надеемся, что после прочтения данной статьи вы поняли, что это интерпретатор, как он используется и где применяется. Информация, приведенная выше, обязательно поможет вам, если вы начинающий программист либо же хотите знать чуточку больше про прекрасный мир компьютеров, но в любом случае знания не бывают лишними.

Читайте также:
Для чего нужна программа обмена студентами

Источник: www.syl.ru

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

Определение 8. Интерпретатор — это программа, которая воспринимает исходную программу на входном (исходном) языке и выполняет ее.

Интерпретатор, так же как и транслятор, анализирует текст исходной программы. Однако он не порождает результирующую программу, а сразу же выполняет исходную программу в соответствии с ее смыслом, заданным семантикой входного языка. Таким образом, результатом работы интерпретатора будет результат, определенный смыслом исходной программы, в том случае, если эта программа синтаксически и семантически правильная с точки зрения входного языка, или сообщение об ошибке в противном случае.

Интерпретатор выполняет программу покомандно, по мере поступления ее исходного кода на вход интерпретатора.

Алгоритм работы простого интерпретатора:

1) прочитать инструкцию;

2) проанализировать инструкцию и определить соответствующие действия;

3) выполнить соответствующие действия;

4) если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.

Режим интерпретации можно использовать при отладке программ на языке высокого уровня.

В большинстве случаев интерпретируемая программа работает намного медленнее, чем скомпилированная программа, но не требует затрат на компиляцию, что в случае небольших программ может повышать общую производительность.

Существенное отличие интерпретатора от компилятора: если интерпретатор исполняет команды по мере их поступления, то он не может выполнять оптимизацию исходной программы. Следовательно, фаза оптимизации в общей структуре интерпретатора будет отсутствовать. В остальном структура интерпретатора будет мало отличаться от структуры аналогичного компилятора. Следует только учесть, что на последнем этапе — генерации кода — машинные команды не записываются в объектный файл, а выполняются по мере их порождения.

Далеко не все языки программирования допускают построение интерпретаторов, которые могли бы выполнять исходную программу по мере поступления команд. Отсутствие шага оптимизации ведет к тому, что выполнение программы с помощью интерпретатора является менее эффективным, чем с помощью аналогичного компилятора. Кроме того, при интерпретации исходная программа должна заново разбираться всякий раз при ее выполнении, в то время как при компиляции она разбирается только один раз, а после этого всегда используется объектный файл. Также очевидно, что объектный код будет исполняться всегда быстрее, чем происходит интерпретация аналогичной исходной программы. Таким образом, интерпретаторы всегда проигрывают компиляторам в производительности.

Преимуществом интерпретатора является независимость выполнения программы от архитектуры целевой вычислительной системы. В результате компиляции получается объектный код, который всегда ориентирован на определенную целевую вычислительную систему. Для перехода на другую целевую вычислительную систему исходную программу требуется откомпилировать заново. А для интерпретации программы необходимо иметь только ее исходный текст и интерпретатор с соответствующего языка.

Интерпретаторы долгое время значительно уступали в распространенности компиляторам. Как правило, интерпретаторы существовали для ограниченного круга относительно простых языков программирования (таких, например, как Basic). Высокопроизводительные профессиональные средства разработки программного обеспечения строились на основе компиляторов.

Новый импульс развитию интерпретаторов придало распространение глобальных вычислительных сетей. Такие сети могут включать в свой состав компьютеры различной архитектуры, и тогда требование единообразного выполнения на каждом из них текста исходной программы становится определяющим.

Поэтому с развитием глобальных сетей и распространением Всемирной сети Интернет появилось много новых систем, интерпретирующих текст исходной программы. Многие языки программирования, применяемые во Всемирной сети, предполагают именно интерпретацию текста исходной программы без порождения объектного кода.

Некоторые современные языки программирования предполагают две стадии разработки: сначала исходная программа компилируется в промежуточный код (некоторый язык низкого уровня), а затем этот результат компиляции выполняется с помощью интерпретатора данного промежуточного языка. Широко распространенным примером интерпретируемого языка может служить HTML (Hypertext Markup Language) — язык описания гипертекста. На его основе в настоящее время функционирует практически вся структура сети Интернет. Другой пример — языки Java и JavaScript сочетают в себе функции компиляции и интерпретации (текст исходной программы компилируется в промежуточный код, не зависящий от архитектуры целевой вычислительной системы, этот код распространяется по сети и интерпретируется на принимающей стороне).

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru