ФЭНДОМ


 Определение Править

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

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

Компилятор Править

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

Интерпретатор Править

Интерпретатор (англ. interpreter - истолкователь, переводчик) — переводит программу построчно (по одному оператору) в машинный код (команды процессора, ОС, иной среды), выполняет переведенный оператор (строку программы), а затем переходит к следующей строке программного текста. Интерпретатор не формирует исполняемых файлов, он сам выполняет все действия, записанные в тексте исходной программы.

Препроцессор Править

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

Эмулятор Править

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

Различия Править

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

К эмулирующим языкам относятся языки для таких платформ, как JVM, .Net, Mono, в которых во время трансляции программы производится её компиляция в специальный байт-код,а исполнение полученного байт-кода производится на целевой машине с помощью простого и быстрого интерпретатора (виртуальной машины).

Блоки транслятора Править

Лексический блок Править

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

• класс – указывает на характер информации в лексеме;

• значение – собственно значение лексемы.

Синтаксический блок Править

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

• класс – вид операции;

• значение – набор указателей на операнды операции.

Семантический блок Править

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

Генератор кода Править

На данном этапе выполняется генерация кода, а именно преобразование цепочки атомов в цепочку команд машинного языка. Генератор кода является машинно-зависимым блоком транслятора.

Блок оптимизации Править

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

Обнаружено использование расширения AdBlock.


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

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

Также на ФЭНДОМЕ

Случайная вики