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

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

Интерпрета́тор — программа (разновидность транслятора) или аппаратное средство, выполняющее интерпретацию.[1]

Интерпрета́ция — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения).[2][3][4]

Содержание

Типы интерпретаторов

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

Интерпретатор компилирующего типа — это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки — большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как Java, Tcl, Perl (используется байт-код[источник не указан 1309 дней]), REXX (сохраняется результат парсинга исходного кода[5]), а также в различных СУБД (используется p-код[источник не указан 1309 дней]).

В случае разделения интерпретатора компилирующего типа на компоненты получаются компилятор языка и простой интерпретатор с минимизированным анализом исходного кода. Причём исходный код для такого интерпретатора не обязательно должен иметь текстовый формат или быть байт-кодом, который понимает только данный интерпретатор, это может быть машинный код какой-то существующей аппаратной платформы. К примеру, виртуальные машины вроде QEMU, Bochs, VMware включают в себя интерпретаторы машинного кода процессоров семейства x86.

Некоторые интерпретаторы (например, для языков Лисп, Scheme, Python, Бейсик и других) могут работать в режиме диалога или так называемого цикла чтения-вычисления-печати (англ. read-eval-print loop, REPL). В таком режиме интерпретатор считывает законченную конструкцию языка (например, s-expression в языке Лисп), выполняет её, печатает результаты, после чего переходит к ожиданию ввода пользователем следующей конструкции.

Уникальным является язык Forth, который способен работать как в режиме интерпретации, так и компиляции входных данных, позволяя переключаться между этими режимами в произвольный момент, как во время трансляции исходного кода, так и во время работы программ.[6]

Следует также отметить, что режимы интерпретации можно найти не только в программном, но и аппаратном обеспечении. Так, многие микропроцессоры интерпретируют машинный код с помощью встроенных микропрограмм, а процессоры семейства x86, начиная с Pentium (например, на архитектуре Intel P6), во время исполнения машинного кода предварительно транслируют его во внутренний формат (в последовательность микроопераций).

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

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

Достоинства и недостатки интерпретаторов

Достоинства

  • Бо́льшая переносимость интерпретируемых программ — программа будет работать на любой платформе, на которой есть соответствующий интерпретатор.
  • Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.
  • Упрощение отладки исходных кодов программ[источник не указан 573 дня].
  • Меньшие размеры кода по сравнению с машинным кодом, полученным после обычных компиляторов.

Недостатки

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

См. также

Примечания

  1. ГОСТ 19781-83; СТ ИСО 2382/7-77 // Вычислительная техника. Терминология: Справочное пособие. Выпуск 1 / Рецензент канд. техн. наук Ю. П. Селиванов. — М.: Издательство стандартов, 1989. — 168 с. — 55 000 экз. — ISBN 5-7050-0155-X
  2. Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991. — 543 с. — 50 000 экз. — ISBN 5-279-00367-0
  3. Борковский А. Б. Англо-русский словарь по программированию и информатике (с толкованиями). — М.: Русский язык, 1990. — 335 с. — 50 050 (доп,) экз. — ISBN 5-200-01169-3
  4. Толковый словарь по вычислительным системам = Dictionary of Computing / Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского. — М.: Машиностроение, 1990. — 560 с. — 70 000 (доп,) экз. — ISBN 5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания)
  5. Dave Martin. Why does my OS/2 REXX program run more quickly the second time?. Rexx FAQs. Архивировано из первоисточника 22 августа 2011. Проверено 22 декабря 2009.
  6. Jeff Fox. Chapter 2. More Interpretation  (англ.). Thoughtful Programming and Forth. UltraTechnology. Архивировано из первоисточника 22 августа 2011. Проверено 25 января 2010.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую
Синонимы:

Полезное


Смотреть что такое "Интерпретатор" в других словарях:

  • ИНТЕРПРЕТАТОР — [тэ], интерпретатора, муж. (книжн.). Человек, интерпретирующий что нибудь, толкователь. Интерпретатор древнего текста. Интерпретатор закона. Толковый словарь Ушакова. Д.Н. Ушаков. 1935 1940 …   Толковый словарь Ушакова

  • интерпретатор — переводчик, толкователь; объяснитель, программа, комментатор, истолкователь Словарь русских синонимов. интерпретатор см. толкователь Словарь синонимов русского языка. Практический справочник. М.: Русский язык …   Словарь синонимов

  • интерпретатор — а, м. interprétateur m. Лицо, занимающееся интерпретацией чего л.; истолкователь. БАС 1. Интепретатор древнего текста. Интерпретатор закона. Уш. 1934. Если б Волошин в те годы умерил свое поварское искусство в подаче стихов, он во многом бы… …   Исторический словарь галлицизмов русского языка

  • Интерпретатор — транслятор, способный параллельно переводить и выполнять программу, написанную на алгоритмическом языке высокого уровня. См. также: Трансляторы Финансовый словарь Финам …   Финансовый словарь

  • ИНТЕРПРЕТАТОР — (interpreter) Компьютерная программа, которая выполняет программу, написанную программным языком (programming language) без ее предварительного перевода в машинный код (machine codе). Программа действует, как если бы она была переведена (cм.:… …   Словарь бизнес-терминов

  • интерпретатор — Программа или техническое средство, выполняющие интерпретацию. Примечание Большинство интерпретаторов осуществляют интерпретацию программы путем последовательной интерпретации ее предложений. [ГОСТ 19781 90] интерпретатор переводчик Программа,… …   Справочник технического переводчика

  • ИНТЕРПРЕТАТОР — [тэ ], а, муж. (книжн.). Человек, интерпретирующий что н. | прил. интерпретаторский, ая, ое. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 …   Толковый словарь Ожегова

  • интерпретатор — (тэ), а, м., одуш. (фр. imerprétateur …   Словарь иностранных слов русского языка

  • интерпретатор — interpretatorius statusas T sritis automatika atitikmenys: angl. interpreter vok. Übersetzer, m; Interpreter, m; Interpretierer, m; Interpretierprogramm, n rus. интерпретатор, m pranc. interpréteur, m …   Automatikos terminų žodynas

  • Интерпретатор — 43. Интерпретатор Interpreter Программа или техническое средство, выполняющие интерпретацию. Примечание. Большинство интерпретаторов осуществляют интерпретацию программы путем последовательной интерпретации ее предложений Источник: ГОСТ 19781 90 …   Словарь-справочник терминов нормативно-технической документации


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»