Введение

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

Виртуальная машина

Виртуальная машина - это специальный тип интерпретатора, который интерпретирует байт-код. Для повышения эффективности многие языки программирования, такие как Java и C #, компилируются в байт-код перед интерпретацией.

Компилятор "just-in-time"

Некоторые виртуальные машины включают компилятор Just in Time (JIT) для повышения эффективности исполнения байт-кода. В то время как байт-код выполняется виртуальной машиной, если компилятор JIT определяет, что часть байт-кода будет использоваться повторно, он компилирует эту конкретную часть в машинный код. Затем компилятор JIT хранит машинный код в памяти, чтобы он мог использоваться виртуальной машиной. Компиляторы JIT пытаются найти баланс между более длительным временем компиляции и более быстрым временем выполнения. Если компилятор данного языка высокого уровня производит другой язык высокого уровня, он называется трансипилятором. Транспилеры могут использоваться для расширения существующих языков или для упрощения разработки компилятора путем использования портативных и хорошо оптимизированных реализаций других языков (таких как C).