Compiler
Un compilateur traduit le code source en code cible (code machine/bytecode) via l'analyse lexicale, syntaxique et sémantique, l'optimisation et la génération de code.
Objectif
Comprendre comment les langages de haut niveau sont transformés en code exécutable et comment fonctionne l'optimisation.
Mécanisme
Front-end : analyse lexicale en jetons, analyse syntaxique en AST, analyse sémantique avec vérification de types. Middle-end : optimisation de l'IR (inlining, propagation de constantes, déroulage de boucles). Back-end : allocation de registres, sélection d'instructions et génération de code.
Cas d’usage
- Implémentation de langages
- Optimisation du code
- Théorie de la compilation