Транслятор, Компилятор, Интерпретатор и Байт-Код

Транслятор, Компилятор, Интерпретатор и Байт-Код фото
Author: Tatyana Milkina

В этой статье мы будем говорить о таких терминах как транслятор, компилятор, интерпретатор и байт-код. Начнём с транслятора.

Транслятор

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

Компилятор

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

Схема работы компилятора:

Схема работы компилятора фото

Достоинства:

  • Быстрота работы программ.
  • Отсутствие надобности компилятора на компьютере пользователя.

Недостатки:

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

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

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

Схема работы интерпретатора:

Схема работы интерпретатора фото

Достоинства:

  • Независимость от ОС.
  • При внесении изменений НЕ требуется перекомпиляция кода.

Недостатки:

  • Низкая скорость работы.
  • Для запуска программы требуется наличие интерпретатора.

Байт-код

В Java используется третий подход, который использует достоинства и компилятора, и интерпретатора — байт-код.

 Как работает Java фото

Процесс начинается с исходного кода на Java в файле с расширением .java.

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

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

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

 

Презентацию с видео можно скачать на Patreon.

Читайте также:
Комментарии