ФЭНДОМ


Трансля́торпрограмма, которая принимает на вход программу на одном языке (он в этом случае называется исходный язык, а программа — исходный код), и преобразует её в программу, написанную на другом языке (соответственно, целевой язык и объектный код).

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

Наиболее часто встречаются две разновидности трансляторов:

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

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

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

См. также Править

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


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

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