от исходника до бинарникаfrom source to binary
Что компилятор реально делает с кодом: стадии от препроцессора до машинного кода, различия трёх основных реализаций (GCC/Clang/MSVC), на чём держатся оптимизации и как несколько объектных файлов становятся одним бинарником. Продолжение темы PE-файла из theory/01 — с той стороны, откуда этот файл вообще берётся.What the compiler actually does to your code: the stages from preprocessor to machine code, the differences between the three major implementations (GCC/Clang/MSVC), what optimizations rely on, and how several object files become one binary. A continuation of the PE-file topic from theory/01 — from the side that produces that file in the first place.
статусstatus
4 темы, 8 страниц: стадии компиляции, GCC/Clang/MSVC как три самостоятельные статьи (история, устройство, driver-пайплайн, расширяемость, санитайзеры, опции оптимизации, инструменты каждого), сравнение с обзором 13 нишевых компиляторов/таргетов, сводная таблица плюсов/минусов, оптимизации, линковка. Метка interview отмечает темы, которые чаще всего всплывают на технических собеседованиях. Раздел логично читать вместе с theory/01 — PE-файл и жизненный цикл процесса: там про итоговый файл и что происходит при его запуске, здесь — про то, как этот файл вообще получается из исходников. Практические примеры ассемблерного выхлопа и разбор конкретных оптимизаций до/после — в compiler-asm/.4 topics, 8 pages: compilation stages, GCC/Clang/MSVC as three standalone articles (history, internals, the driver pipeline, extensibility, sanitizers, optimization flags, and tooling for each), a comparison with an overview of 13 niche compilers/targets, a summary pros/cons table, optimizations, linking. The interview tag marks the topics that come up most often in technical interviews. This section pairs naturally with theory/01 — the PE file & process lifecycle: that page covers the resulting file and what happens when it launches, this one covers how that file gets produced from source in the first place. Hands-on assembly-output examples and before/after optimization breakdowns live in compiler-asm/.