Транслятор это в информатике – транслятор это в информатике — что такое транслятор, интерпритатор, компилятор — 22 ответа

Транслятор, компилятор, интерпретатор

Транслятор(англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д. Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

В общем случае понятие трансляции относится не только к языкам программирования, но и к другим языкам — как формальным компьютерным (вроде языков разметки типа HTML), так и естественным (русскому, английскому и т. п.).

Виды трансляторов

  1. Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени (англ.).

  2. Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.

  3. Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.

  4. Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.

  5. Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.

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

  7. Обратный. Для программы в машинном коде выдаёт эквивалентную программу на каком-либо языке программирования (см.: дизассемблер, декомпилятор).

Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.

Компилятор(англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

Виды компиляторов

  • Векторизующий. Транслирует исходный код в машинный код компьютеров, оснащённых векторным процессором.

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

  • Диалоговый. См.: диалоговый транслятор.

  • Инкрементальный. Повторно транслирует фрагменты программы и дополнения к ней без перекомпиляции всей программы.

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

  • Компилятор компиляторов. Транслятор, воспринимающий формальное описание языка программирования и генерирующий компилятор для этого языка.

  • Отладочный. Устраняет отдельные виды синтаксических ошибок.

  • Резидентный. Постоянно находится в оперативной памяти и доступен для повторного использования многими задачами.

  • Самокомпилируемый. Написан на том же языке, с которого осуществляется трансляция.

  • Универсальный. Основан на формальном описании синтаксиса и семантики входного языка. Составными частями такого компилятора являются: ядро, синтаксический и семантический загрузчики.

studfiles.net

Транслятор — это… Что такое Транслятор?

Эта статья о языках программирования; о естественных языках см.: Перевод.

Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.[1][2]

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.[1]

Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.[1]

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом

. Выходной язык называется целевым языком или объектным кодом.

В общем случае понятие трансляции относится не только к языкам программирования, но и к другим языкам — как формальным компьютерным (вроде языков разметки типа HTML), так и естественным (русскому, английскому и т. п.).[3][4]

Виды трансляторов

Трансляторы подразделяют[2]:

  • Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени (англ.).
  • Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.
  • Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.
  • Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.
  • Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.
  • Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера.
  • Обратный. Для программы в машинном коде выдаёт эквивалентную программу на каком-либо языке программирования (см.: дизассемблер, декомпилятор).

Реализации

Цель трансляции — преобразовать текст с одного языка на другой, который понятен адресату текста. В случае программ-трансляторов, адресатом является техническое устройство (процессор) или программа-интерпретатор.

Язык процессоров (машинный код) обычно является низкоуровневым. Существуют платформы, использующие в качестве машинного язык высокого уровня (например, iAPX-432[5]), но они являются исключением из правила в силу сложности и дороговизны. Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором

.[6]

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

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

В случае, если исходный язык является языком ассемблера (низкоуровневым языком, близким к машинному языку), то компилятор такого языка называется ассемблером.

Другой метод реализации — когда программа исполняется с помощью интерпретатора вообще без трансляции. Интерпретатор программно моделирует машину, цикл выборки-исполнения которой работает с командами на языках высокого уровня, а не с машинными командами. Такое программное моделирование создаёт виртуальную машину, реализующую язык. Этот подход называется чистой интерпретацией.[6] Чистая интерпретация применяется как правило для языков с простой структурой (например, АПЛ или Лисп). Интерпретаторы командной строки обрабатывают команды в скриптах в UNIX или в пакетных файлах (.bat) в MS-DOS также как правило в режиме чистой интерпретации.

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

Существуют компромиссные между компиляцией и чистой интерпретацией варианты реализации языков программирования, когда интерпретатор перед исполнением программы транслирует её на промежуточный язык (например, в байт-код или p-код), более удобный для интерпретации (то есть речь идёт об интерпретаторе со встроенным транслятором). Такой метод называется смешанной реализацией.

[6] Примером смешанной реализации языка может служить Perl. Этот подход сочетает как достоинства компилятора и интерпретатора (бо́льшая скорость исполнения и удобство использования), так и недостатки (для трансляции и хранения программы на промежуточном языке требуются дополнительные ресурсы; для исполнения программы на целевой машине должен быть представлен интерпретатор). Также, как и в случае компилятора, смешанная реализация требует, чтобы перед исполнением исходный код не содержал ошибок (лексических, синтаксических и семантических).

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

динамической компиляции.

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

Этот метод хорошо подходит для веб-приложений. Соответственно, динамическая компиляция появилась и поддерживается в той или иной мере в реализациях Java, .NET Framework, Perl, Python.

Смешение понятий трансляции и интерпретации

Трансляция и интерпретация — разные процессы: трансляция занимается переводом программ с одного языка на другой, а интерпретация отвечает за исполнение программ. Однако, поскольку целью трансляции как правило является подготовка программы к интерпретации, то эти процессы обычно рассматриваются вместе. Например, языки программирования часто характеризуются как «компилируемые» или «интерпретируемые», в зависимости от того, преобладает при использовании языка компиляция или интерпретация. Причём практически все языки программирования низкого уровня и третьего поколения, вроде ассемблера, Си или Модулы-2, являются компилируемыми, а более высокоуровневые языки, вроде Python или SQL, — интерпретируемыми.

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

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

Примечания

  1. 1 2 3 ГОСТ 19781-83 // Вычислительная техника. Терминология: Справочное пособие. Выпуск 1 / Рецензент канд. техн. наук Ю. П. Селиванов. — М.: Издательство стандартов, 1989. — 168 с. — 55 000 экз. — ISBN 5-7050-0155-X
  2. 1 2 Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991. — 543 с. — 50 000 экз. — ISBN 5-279-00367-0
  3. СТ ИСО 2382/7-77 // Вычислительная техника. Терминология. Указ. соч.
  4. Толковый словарь по вычислительным системам = Dictionary of Computing / Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского. — М.: Машиностроение, 1990. — 560 с. — 70 000 (доп,) экз. — ISBN 5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания)
  5. Органик Э. Организация системы Интел 432 = A Programmer’s View of the Intel 432 System / Пер. с англ. — М.: Мир, 1987. — С. 20, 31. — 446 с. — 59 000 экз.

    Можно привести ряд других примеров, в которых архитектура разработанных серий вычислительных машин базировалась или сильно зависела от некоторой модели структуры программы. Так, серия GE/Honeywell Multics основывалась на семантической модели выполнения программ, написанных на языке ПЛ/1. В Burroughs (англ.) B5500, B6700 … B7800 прототипом послужила модель программы этапа выполнения, написанной на расширенном языке Алгол. …

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

    Язык Ада поддерживает объектно-базированное программирование, что и послужило причиной выбора его в качестве основного языка программирования для i432.

  6. 1 2 3 Роберт У. Себеста. 1.7. Методы реализации // Основные концепции языков программирования = Concepts of Programming Languages / Пер. с англ. — 5-е изд. — М.: Вильямс, 2001. — С. 45—52. — 672 с. — 5000 экз. — ISBN 5-8459-0192-8 (рус.), ISBN 0-201-75295-6 (англ.)

Литература

  • Касьянов В. Н., Поттосин И. В. Методы построения трансляторов. — Новосибирск: Наука, 1986. — 344 с.

dic.academic.ru

25. Трансляторы. Типы и назначение.

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

Три основных типа трансляторов: ассемблеры, компиляторы и интерпретаторы.

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

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

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

26. Защита данных. Помехоустойчивое кодирование.

Для обнаружения и исправления ошибок в сотовых системах связи применяется помехоустойчивое кодирование. Суть его заключается в том, что в передаваемый цифровой поток вносится некоторая избыточность. Обычно помехоустойчивое кодирование разделено на 2 части: обнаружение и исправление ошибок. Для обнаружения ошибок обычно применяется CRC (Cyclic Redundancy Check). Он реализуется по средствам вычисления контрольной суммы блока информации и передачи ее вместе с полезной информации. Причем в зависимости от степени важности и скорости передачи информации контрольная сумма может содержать больше или меньше бит. Чем выше важность информации и скорость передачи данных, тем больше контрольных бит нужно передавать. Кроме CRC в различных стандартах может применяться и другой вид кодирования.

27. Компьютерные вирусы. Защита.

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

Существует достаточно много программных средств антивирусной защиты. Современные антивирусные программы состоят из модулей:

  • Эвристический модуль – для выявления неизвестных вирусов

  • Монитор – программа, которая постоянно находится в оперативной памяти ПК

  • Устройство управления, которое осуществляет запуск антивирусных программ и обновление вирусной базы данных и компонентов

  • Почтовая программа (проверяет электронную почту)

  • Программа сканер – проверяет, обнаруживает и удаляет фиксированный набор известных вирусов в памяти, файлах и системных областях дисков

  • Сетевой экран – защита от хакерских атак

К наиболее эффективным и популярным антивирусным программам относятся: Антивирус Касперского 7.0, AVAST, Norton AntiVirus и многие другие.

studfiles.net

Лекция — Транслятор — Информатика

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

В работе транслятора участвуют три программы:

Сам транслятор является программой. Т.е. транслятор – это часть программного обеспечения (ПО), он представляет собой набор машинных команд и данных и выполняется компьютером, как и все прочие программы в рамках операционной системы (ОС)

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

Выходными данными транслятора является программа на результирующем языке. Эта программа называется результирующей программой

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

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

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

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

Таким образом, компилятор отличается от транслятора лишь тем, что результирующая программа всегда должна быть написана на языке машинных кодов или ассемблера. Результирующая программа транслятора, в общем случае, может быть написана на любом языке (например, транслятор с языка Pascal на язык C).

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

 

www.ronl.ru

ТРАНСЛЯТОР — это… Что такое ТРАНСЛЯТОР?

  • Транслятор — в широком смысле программа, преобразующая текст, написанный на одном языке, в текст на другом языке. Транслятор в узком смысле программа, преобразующая: программу, написанную на одном (входном) языке в программу, представленную на другом… …   Финансовый словарь

  • ТРАНСЛЯТОР — [англ. translators Словарь иностранных слов русского языка

  • транслятор — преобразователь, транслирующая программа; телетранслятор, компилятор Словарь русских синонимов. транслятор сущ., кол во синонимов: 6 • компилятор (5) • …   Словарь синонимов

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

  • ТРАНСЛЯТОР — в информатике (компилятор), программа ЭВМ, предназначенная для автоматического перевода описания алгоритма с одного языка программирования на другой, в частности на машинный язык. Является частью базового программного обеспечения ЭВМ, одно из… …   Современная энциклопедия

  • транслятор — транслятор; отрасл. программирующая программа; компилятор Программа перевода записи алгоритма с одного алгоритмического языка на другой (в частности, на язык вычислительной машины) …   Политехнический терминологический толковый словарь

  • Транслятор — в информатике (компилятор), программа ЭВМ, предназначенная для автоматического перевода описания алгоритма с одного языка программирования на другой, в частности на машинный язык. Является частью базового программного обеспечения ЭВМ, одно из… …   Иллюстрированный энциклопедический словарь

  • ТРАНСЛЯТОР — программа ЭВМ, предназначенная для автоматического перевода текста программы с одного формального языка (см.) на др. или с конкретного языка программирования на машинный язык. Первый из этих языков называют входным, второй выходным. Т. является… …   Большая политехническая энциклопедия

  • Транслятор — Эта статья о языках программирования; о естественных языках см.: Перевод. Эта статья включает описание термина «Трансляция»; см. также другие значения. Транслятор  программа или техническое средство, выполняющее трансляцию программы.[1][2]… …   Википедия

  • Транслятор — 38. Транслятор Translator Программа или техническое средство, выполняющие трансляцию программы. Примечание. На транслятор обычно возлагаются функции диагностики ошибок, формирования словарей идентификаторов, выдачи для печати текстов программ и т …   Словарь-справочник терминов нормативно-технической документации

  • dic.academic.ru

    Транслятор — Языки и методы программирования/ Теория трансляции

    Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.[1][2]

    Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.[1]

    Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати текста программы и т. д.[1]

    Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языкомили объектным кодом.

    В общем случае, понятие трансляции относится не только к языкам программирования, но и к другим языкам — как формальным компьютерным (вроде языков разметкитипа HTML), так и естественным (русскому, английскому и т. п.).[3][4]

     

    Содержание

       

    • 1 Виды трансляторов
    • 2 Реализации
    • 3 Смешение понятий трансляции и интерпретации
    • 4 Примечания
    • 5 Литература

     

    Виды трансляторов

    Трансляторы подразделяют[2]:

    • Диалоговый. Обеспечивает использование языка программирования в режиме разделения времени (англ.).
    • Синтаксически-ориентированный (синтаксически-управляемый). Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.
    • Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.
    • Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.
    • Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.
    • Тестовый. Набор макрокоманд языка ассемблера, позволяющих задавать различные отладочные процедуры в программах, составленных на языке ассемблера.
    • Обратный. Для программы в машинном коде выдаёт эквивалентную программу на каком-либо языке программирования (см.: дизассемблер, декомпилятор).

    Реализации

    Цель трансляции — преобразовать текст с одного языка на другой, который понятен адресату текста. В случае программ-трансляторов, адресатом является техническое устройство (процессор) или программа-интерпретатор.

    Основная статья: Компилятор

    Язык процессоров (машинный код) обычно является низкоуровневым. Существуют платформы, использующие в качестве машинного язык высокого уровня (например,iAPX-432[5]), но они являются исключением из правила в силу сложности и дороговизны. Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором.[6]

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

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

    Основная статья: Ассемблер

    В случае, если исходный язык является языком ассемблера (низкоуровневым языком, близким к машинному языку), то компилятор такого языка называетсяассемблером.

    Основная статья: Интерпретатор

    Другой метод реализации — когда программа исполняется с помощью интерпретатора вообще без трансляции. Интерпретатор программно моделирует машину, цикл выборки-исполнения которой работает с командами на языках высокого уровня, а не с машинными командами. Такое программное моделирование создаёт виртуальную машину, реализующую язык. Этот подход называется чистой интерпретацией.[6] Чистая интерпретация применяется, как правило, для языков с простой структурой (например, АПЛ или Лисп). Интерпретаторы командной строки обрабатывают команды в скриптах в UNIX или в пакетных файлах (.bat) в MS-DOS также как правило в режиме чистой интерпретации.

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

    Существуют компромиссные между компиляцией и чистой интерпретацией варианты реализации языков программирования, когда интерпретатор перед исполнением программы транслирует её на промежуточный язык (например, в байт-код или p-код), более удобный для интерпретации (то есть речь идёт об интерпретаторе со встроенным транслятором). Такой метод называется смешанной реализацией.[6] Примером смешанной реализации языка может служить Perl. Этот подход сочетает как достоинства компилятора и интерпретатора (бо́льшая скорость исполнения и удобство использования), так и недостатки (для трансляции и хранения программы на промежуточном языке требуются дополнительные ресурсы; для исполнения программы на целевой машине должен быть представлен интерпретатор). Также, как и в случае компилятора, смешанная реализация требует, чтобы перед исполнением исходный код не содержал ошибок (лексических, синтаксических и семантических).

    Основная статья: Динамическая компиляция

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

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

    Этот метод хорошо подходит для веб-приложений. Соответственно, динамическая компиляция появилась и поддерживается в той или иной мере в реализациях Java,.NET Framework, Perl, Python.

    Смешение понятий трансляции и интерпретации

    Трансляция и интерпретация — разные процессы: трансляция занимается переводом программ с одного языка на другой, а интерпретация отвечает за исполнение программ. Однако, поскольку, целью трансляции, как правило, является подготовка программы к интерпретации, то эти процессы обычно рассматриваются вместе. Например, языки программирования часто характеризуются как «компилируемые» или «интерпретируемые», в зависимости от того, что преобладает при использовании языка: компиляция или интерпретация. Причём, практически все языки программирования низкого уровня и третьего поколения, вроде ассемблера, Си или Модулы-2, являются компилируемыми, а более высокоуровневые языки, вроде Python или SQL, — интерпретируемыми.

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

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

    intellect.ml

    Транслятор — это… Что такое Транслятор?

  • ТРАНСЛЯТОР — [англ. translators Словарь иностранных слов русского языка

  • транслятор — преобразователь, транслирующая программа; телетранслятор, компилятор Словарь русских синонимов. транслятор сущ., кол во синонимов: 6 • компилятор (5) • …   Словарь синонимов

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

  • ТРАНСЛЯТОР — в информатике (компилятор), программа ЭВМ, предназначенная для автоматического перевода описания алгоритма с одного языка программирования на другой, в частности на машинный язык. Является частью базового программного обеспечения ЭВМ, одно из… …   Современная энциклопедия

  • ТРАНСЛЯТОР — в информатике (компилятор) программа ЭВМ, предназначенная для автоматического перевода описания алгоритма с одного языка программирования на другой, в частности на машинный язык …   Большой Энциклопедический словарь

  • транслятор — транслятор; отрасл. программирующая программа; компилятор Программа перевода записи алгоритма с одного алгоритмического языка на другой (в частности, на язык вычислительной машины) …   Политехнический терминологический толковый словарь

  • Транслятор — в информатике (компилятор), программа ЭВМ, предназначенная для автоматического перевода описания алгоритма с одного языка программирования на другой, в частности на машинный язык. Является частью базового программного обеспечения ЭВМ, одно из… …   Иллюстрированный энциклопедический словарь

  • ТРАНСЛЯТОР — программа ЭВМ, предназначенная для автоматического перевода текста программы с одного формального языка (см.) на др. или с конкретного языка программирования на машинный язык. Первый из этих языков называют входным, второй выходным. Т. является… …   Большая политехническая энциклопедия

  • Транслятор — Эта статья о языках программирования; о естественных языках см.: Перевод. Эта статья включает описание термина «Трансляция»; см. также другие значения. Транслятор  программа или техническое средство, выполняющее трансляцию программы.[1][2]… …   Википедия

  • Транслятор — 38. Транслятор Translator Программа или техническое средство, выполняющие трансляцию программы. Примечание. На транслятор обычно возлагаются функции диагностики ошибок, формирования словарей идентификаторов, выдачи для печати текстов программ и т …   Словарь-справочник терминов нормативно-технической документации

  • dic.academic.ru

    Author: alexxlab

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *