Compilation vs interprétation
Compilé, bytecode, interprété, JIT : quatre façons de transformer du texte en programme qui tourne.
Trois (et demie) façons d'exécuter
| Mode | Principe | Exemples |
|---|---|---|
| Compilé | Traduit en binaire avant l'exécution : rapide, mais un build par machine | C, C++, Rust, Go |
| Bytecode | Compilé vers un langage de machine virtuelle, portable | Java (JVM), C# (.NET), Kotlin |
| Interprété | Lu et exécuté ligne à ligne : souple, plus lent | Python, Ruby, PHP |
| JIT | Compile à chaud les bouts chauds pendant l'exécution | JavaScript (V8), Java (HotSpot), PyPy |
La chaîne de compilation
Préprocesseur → compilation → assemblage → édition de liens : chaque étape a ses erreurs propres. Une erreur de compilation = le code ne respecte pas le langage ; une erreur d'édition de liens = il manque un morceau (librairie).
Lire une erreur comme un pro
-g) et un gdb/lldb de base changent la vie en C/C++/Rust.