Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Система для выполнения компьютерных программ В компьютерном программировании реализация языка программирования - это система для выполнения компьютерных программ. Существует два общих подхода к реализации языка программирования: Интерпретация: Программа читается в качестве ввода переводчиком, который выполняет действия, написанные в программе. Компиляция: Программа читается компилятором, который переводит ее на какой-то другой язык, например, в байт-код или машинный код. Переведенный код может быть либо непосредственно исполнен аппаратным обеспечением, либо служить вводом для другого интерпретатора или другого компилятора.
System for executing computer programs
In computer programming, a programming language implementation is a system for executing computer programs. There are two general approaches to programming language implementation:
Interpretation: The program is read as input by an interpreter, which performs the actions written in the program. Compilation: The program is read by a compiler, which translates it into some other language, such as bytecode or machine code. The translated code may either be directly executed by hardware or serve as input to another interpreter or another compiler.
Виртуальная машина
Виртуальная машина - это специальный тип интерпретатора, который интерпретирует байт-код. Для повышения эффективности многие языки программирования, такие как Java и C #, компилируются в байт-код перед интерпретацией.
A virtual machine is a special type of interpreter that interprets bytecode. To improve their efficiencies, many programming languages such as Java, and C# are compiled to bytecode before being interpreted.
Компилятор "just-in-time"
Некоторые виртуальные машины включают компилятор Just in Time (JIT) для повышения эффективности исполнения байт-кода. В то время как байт-код выполняется виртуальной машиной, если компилятор JIT определяет, что часть байт-кода будет использоваться повторно, он компилирует эту конкретную часть в машинный код. Затем компилятор JIT хранит машинный код в памяти, чтобы он мог использоваться виртуальной машиной. Компиляторы JIT пытаются найти баланс между более длительным временем компиляции и более быстрым временем выполнения. Если компилятор данного языка высокого уровня производит другой язык высокого уровня, он называется трансипилятором. Транспилеры могут использоваться для расширения существующих языков или для упрощения разработки компилятора путем использования портативных и хорошо оптимизированных реализаций других языков (таких как C).
Some virtual machines include a just in time (JIT) compiler to improve the efficiency of bytecode execution. While the bytecode is being executed by the virtual machine, if the JIT compiler determines that a portion of the bytecode will be used repeatedly, it compiles that particular portion to machine code. The JIT compiler then stores the machine code in memory so that it can be used by the virtual machine. JIT compilers try to strike a balance between longer compilation time and faster execution time. If a compiler of a given high level language produces another high level language, it is called a transpiler. Transpilers can be used to extend existing languages or to simplify compiler development by exploiting portable and well optimized implementations of other languages (such as C).