Interested Article - AOT-компиляция

Ahead-of-Time (AOT) компилятор — это вид транслятора , который использует метод компиляции перед исполнением ( англ. ahead-of-time compilation ). Применяется как для компиляции высокоуровневых языков (например, Си , C++ или Паскаль ), так и для компиляции «промежуточных» языков, таких как байт-код Java , .NET Common Intermediate Language (CIL) , IBM System/38, IBM System i.

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

Метод АОТ не требует выделения дополнительной памяти и АОТ-компиляция проходит с минимальной нагрузкой на систему. Процесс компиляции полностью выполняется перед выполнением программы.

Примеры AOT-компиляторов

  • Ngen для .NET (Windows)
  • Mono AOT для .NET (AMD64, ARM )
  • для Java (Java SE 7 и Windows/linux на x86/amd64 )
  • ART для Android
  • asm.js для JavaScript
  • GraalVM Native Image для Java

Примечания

  1. . Дата обращения: 2 февраля 2012. 4 февраля 2012 года.
  2. от 16 января 2014 на Wayback Machine // «Открытые системы» , № 06, 2008 «Excelsior Jet— реализацию платформы Java Standard Edition 6, основанную на технологии компиляции Java-приложений „до запуска“ (ahead of time, AOT)… на выходе получается обычное приложение с оптимизированным x86-кодом.»
  3. Дата обращения: 12 февраля 2020. 15 февраля 2020 года.

Литература

  • , Vladimir O. Safonov, Chapter 8.6 «AOT Compilation»
Источник —

Same as AOT-компиляция