C# no compila directamente a código máquina. Compila a IL (Intermediate Language) — un bytecode independiente de plataforma — que el CLR ejecuta, usando JIT (Just-In-Time) para traducir IL a código máquina nativo en tiempo de ejecución. AOT (Ahead-Of-Time) es una alternativa que compila a código nativo en tiempo de compilación.
El pipeline de ejecución
C# source (.cs)
│ C# compiler (roslyn)
▼
IL bytecode (in a .dll/.exe assembly) ← platform-INDEPENDENT intermediate code
│ CLR loads it; JIT compiles IL → native code AT RUNTIME (per method, as called)
▼
Native machine code → executes on the CPU
