Компилятор — преобразует исходный код в другой целевой вид (машинный код, байткод) до исполнения.

Этапы

  • Лексический и синтаксический анализ → AST.

  • Семантический анализ, построение промежуточного представления (IR).

  • Оптимизации (inlining, dead code elimination, register allocation).

  • Генерация машинного кода/байткода и линковка.

Варианты

  • AOT (ahead-of-time) — сборка перед запуском, быстрый runtime, длиннее build.

  • JIT (just-in-time) — компиляция в runtime горячих участков, баланс скорости старта и исполнения.

  • Инкрементальная/clangd-style — пересборка изменённых частей для IDE.

Примеры

  • AOT: gcc/clang (C/C++), Rustc.

  • JIT/гибрид: HotSpot (JVM), .NET CLR, V8.

См. также: Интерпретатор.

Последнее обновление