<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80</id>
	<title>Интерпретатор - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80&amp;action=history"/>
	<updated>2026-07-17T10:46:37Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80&amp;diff=5708&amp;oldid=prev</id>
		<title>imported&gt;Northgav: внутренние ссылки</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80&amp;diff=5708&amp;oldid=prev"/>
		<updated>2025-09-19T19:47:19Z</updated>

		<summary type="html">&lt;p&gt;внутренние ссылки&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{другой термин|Интерпретация|Интерпретация}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Интерпрета́тор&amp;#039;&amp;#039;&amp;#039;&amp;lt;!-- ударение по интерпрета́тор / &amp;#039;Русское словесное ударение. — М.: ЭНАС. М. В. Зарва. 2001.&amp;#039;--&amp;gt; ({{Lang-en|interpreter}} {{IPA|ıntə:&amp;#039;prıtə}}&amp;lt;ref&amp;gt;{{Книга|автор=Кочергин В. И.|часть=interpreter|заглавие=Большой англо-русский толковый научно-технический словарь компьютерных  информационных технологий и радиоэлектроники|ответственный=|издание=|место=|издательство=|год=2016|страницы=|страниц=|isbn=978-5-7511-2332-1|isbn2=}}&amp;lt;/ref&amp;gt;, от {{Lang-la|interpretator}} — толкователь&amp;lt;ref&amp;gt;{{Книга|автор=|часть=Интерпретатор|заглавие=Математический энциклопедический словарь|ссылка=https://archive.org/details/libgen_00858224|ответственный=Гл. ред. Прохоров Ю. В.|издание=|место=М.|издательство=Советская энциклопедия|год=1988|страницы=[https://archive.org/details/libgen_00858224/page/n819 820]|страниц=847|isbn=|isbn2=}}&amp;lt;/ref&amp;gt;) — [[Компьютерная программа|программа]] (разновидность [[транслятор]]а), выполняющая &amp;#039;&amp;#039;интерпретацию&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{ГОСТ|19781-90}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Интерпрета́ция&amp;#039;&amp;#039;&amp;#039; — построчный анализ, обработка и выполнение исходного кода программы или запроса, в отличие от [[компилятор|компиляции]], где весь текст программы перед запуском анализируется и транслируется в [[Машинный код|машинный]] или [[байт-код]] без её выполнения&amp;lt;ref&amp;gt;{{книга|автор=Першиков В. И., Савинков В. М.|заглавие=Толковый словарь по информатике|ссылка=https://archive.org/details/tolkovyislovarpo0000pers|ответственный=Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин|место=М.|издательство=Финансы и статистика|год=1991|страниц=543|isbn=5-279-00367-0|тираж=50000}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{книга|автор=Борковский А. Б.|заглавие=Англо-русский словарь по программированию и информатике (с толкованиями)|место=М.|издательство=Русский язык|год=1990|страниц=335|isbn=5-200-01169-3|тираж=50050 (доп.)}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{книга|заглавие=Толковый словарь по вычислительным системам|оригинал=Dictionary of Computing|ответственный=Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского|место=М.|издательство=Машиностроение|год=1990|страниц=560|isbn=5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания)|тираж=70000 (доп.)}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
Первым интерпретируемым [[Язык программирования|языком программирования]] высокого уровня был [[Лисп|Lisp]]. Его интерпретатор был создан в [[1958 год]]у {{iw|Рассел, Стив|Стивом Расселом|en|Steve Russell (computer scientist)}} на компьютере [[IBM 704]]. Рассел вдохновился работой [[Маккарти, Джон|Джона Маккарти]] и выяснил, что функция &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; в Lisp может быть встроена в машинный код&amp;lt;ref&amp;gt;{{Книга|автор=Graham, Paul.|заглавие=Hackers &amp;amp; painters : big ideas from the computer age|ссылка=http://worldcat.org/oclc/934323016|ответственный=|издание=|место=|издательство=O&amp;#039;Reilly|год=2010|страницы=185|страниц=|isbn=9781449389550, 1449389554|isbn2=}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Типы интерпретаторов ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Простой интерпретатор&amp;#039;&amp;#039;&amp;#039; анализирует и тут же выполняет (собственно интерпретация) программу покомандно или построчно по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды или строки с ошибкой.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Интерпретатор компилирующего типа&amp;#039;&amp;#039;&amp;#039; — это система из [[компилятор]]а, переводящего исходный код программы в промежуточное представление, например, в [[байт-код]] или [[p-код]], и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая [[виртуальная машина]]). Достоинством таких систем является большее быстродействие выполнения программ за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе. Недостатки — большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как [[Java]], [[PHP]], [[Tcl]], [[Perl]], [[REXX]] (сохраняется результат [[Синтаксический анализ|парсинга]] исходного кода&amp;lt;ref&amp;gt;{{cite web|url=http://www.mindspring.com/~dave_martin/faqs.html#FAQ2|title=Why does my OS/2 REXX program run more quickly the second time?|author=Dave Martin.|work=Rexx FAQs|accessdate=2009-12-22|archiveurl=https://www.webcitation.org/617hsloQD?url=http://www.mindspring.com/~dave_martin/faqs.html#FAQ2|archivedate=2011-08-22}}&amp;lt;/ref&amp;gt;), а также в различных [[Система управления базами данных|СУБД]].&lt;br /&gt;
&lt;br /&gt;
В случае разделения интерпретатора компилирующего типа на компоненты получаются компилятор языка и простой интерпретатор с минимизированным анализом исходного кода. Причём исходный код для такого интерпретатора не обязательно должен иметь [[текстовый формат]] или быть байт-кодом, который понимает только данный интерпретатор, это может быть [[машинный код]] какой-то существующей аппаратной платформы. К примеру, виртуальные машины вроде [[QEMU]], [[Bochs]], [[VMware]] включают интерпретаторы машинного кода [[процессор]]ов семейства [[x86]].&lt;br /&gt;
&lt;br /&gt;
Некоторые интерпретаторы (например, для языков [[Лисп]], [[Scheme]], [[Python]], [[Бейсик]] и других) могут работать в режиме диалога или так называемого цикла чтения-вычисления-печати ({{lang-en|read-eval-print loop, [[REPL]]}}). В таком режиме интерпретатор считывает законченную конструкцию языка (например, [[s-expression]] в языке Лисп), выполняет её, печатает результаты, после чего переходит к ожиданию ввода пользователем следующей конструкции.&lt;br /&gt;
&lt;br /&gt;
Уникальным является язык [[Forth]], который способен работать как в режиме интерпретации, так и компиляции входных данных, позволяя переключаться между этими режимами в произвольный момент, как во время трансляции исходного кода, так и во время работы программ&amp;lt;ref&amp;gt;{{cite web|author=Jeff Fox.|url=http://www.ultratechnology.com/forth2.htm#inter|title=Chapter 2. More Interpretation|work=Thoughtful Programming and Forth|publisher=UltraTechnology|accessdate=2010-01-25|lang=en|archiveurl=https://www.webcitation.org/617htHJQJ?url=http://www.ultratechnology.com/forth2.htm#inter|archivedate=2011-08-22}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Следует отметить, что режимы интерпретации можно найти не только в программном, но и [[аппаратное обеспечение|аппаратном обеспечении]]. Так, многие [[микропроцессор]]ы интерпретируют машинный код с помощью встроенных [[микропрограмма|микропрограмм]], а процессоры семейства [[x86]], начиная с [[Pentium]] (например, на архитектуре [[Intel P6]]), во время исполнения машинного кода предварительно транслируют его во внутренний формат (в последовательность микроопераций).&lt;br /&gt;
&lt;br /&gt;
== [[Алгоритм]] работы простого интерпретатора ==&lt;br /&gt;
# &amp;#039;&amp;#039;прочитать инструкцию&amp;#039;&amp;#039;;&lt;br /&gt;
# &amp;#039;&amp;#039;проанализировать инструкцию и определить соответствующие действия&amp;#039;&amp;#039;;&lt;br /&gt;
# &amp;#039;&amp;#039;выполнить соответствующие действия&amp;#039;&amp;#039;;&lt;br /&gt;
# &amp;#039;&amp;#039;если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Достоинства и недостатки интерпретаторов ==&lt;br /&gt;
&lt;br /&gt;
=== Достоинства ===&lt;br /&gt;
* Большая [[портирование программного обеспечения|переносимость]] интерпретируемых программ — программа будет работать на любой платформе, на которой реализован соответствующий интерпретатор.&lt;br /&gt;
* Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.&lt;br /&gt;
* Меньшие размеры кода по сравнению с машинным кодом, полученным после обычных компиляторов.&lt;br /&gt;
&lt;br /&gt;
=== Недостатки ===&lt;br /&gt;
* Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора. Сам интерпретатор при этом может быть очень компактным.&lt;br /&gt;
* Интерпретируемая программа выполняется медленнее, поскольку промежуточный анализ исходного кода и планирование его выполнения требуют дополнительного времени в сравнении с непосредственным исполнением машинного кода, в который мог бы быть скомпилирован исходный код.&lt;br /&gt;
* Практически отсутствует [[оптимизация (информатика)|оптимизация кода]], что приводит к дополнительным потерям в скорости работы интерпретируемых программ.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
{{Навигация&lt;br /&gt;
|Викисловарь = интерпретатор&lt;br /&gt;
}}&lt;br /&gt;
* [[JIT-компиляция]] (динамическая компиляция)&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
{{ВС}}&lt;br /&gt;
{{Выполнение программы}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Интерпретаторы|*]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Northgav</name></author>
	</entry>
</feed>