AOT-компиляция (AOT-tkbhnlxenx)
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[1])
- Excelsior JET[англ.] для Java (Java SE 7 и Windows/linux на x86/amd64[2])
- ART для Android
- asm.js для JavaScript
- GraalVM Native Image для Java[3]
Примечания
[править | править код]- ↑ AOT — Mono . Дата обращения: 2 февраля 2012. Архивировано 4 февраля 2012 года.
- ↑ Пополнение в Eclipse Foundation Архивная копия от 16 января 2014 на Wayback Machine // «Открытые системы» , № 06, 2008 «Excelsior Jet— реализацию платформы Java Standard Edition 6, основанную на технологии компиляции Java-приложений „до запуска“ (ahead of time, AOT)… на выходе получается обычное приложение с оптимизированным x86-кодом.»
- ↑ Redirecting… Дата обращения: 12 февраля 2020. Архивировано 15 февраля 2020 года.
Литература
[править | править код]- Trustworthy Compilers, Vladimir O. Safonov, Chapter 8.6 «AOT Compilation»
Для улучшения этой статьи желательно:
|