// THE_PIPELINE

From human-readable code to machine-executable binary.

SOURCE
(.c)
PREPROC
(.i)
COMPILER
(.s)
ASSEMBLER
(.o)
LINKER
(.exe)

1. Preprocessing

Handles directives like #include and #define.

Effect: Copy-pastes header files into your source. File size grows significantly.

2. Compilation

Translates C code into Assembly Language (x86_64, ARM, etc.).

Effect: Logic is converted to CPU mnemonics (MOV, ADD, CALL).

3. Assembling

Translates Assembly text into Machine Code (binary opcodes).

Effect: Creates an "Object File" (.o). It has code but hasn't connected to libraries yet.

4. Linking

Combines object files with system libraries (like stdio for printf).

Effect: Produces the final Executable. Adds Headers (PE/ELF) so the OS can run it.