S. Touati
Compilation
L3-INFO 6 ECTS 18h cours + 36h TD + 6h TP S6 S. Touati
Pré-requis conseillés
Structures de données et programmation C, automates et langages.
Description
Ce cours traite d’un thème fondamental en science informatique, qui est la compilation. C’est l’art de la traduction automatique entre les langages structurés. Un compilateur peut par exemple être utilisé en programmation (traduction d’un langage de programmation quelconque vers un autre langage de programmation). La compilation peut aussi être utilisée pour d’autres applications de traduction automatique, pas nécessairement en programmation: analyse et extraction d’information, programmation de filtres, réécriture automatique de textes, de pages web, interprétation de programmes, etc. C’est un des domaines les plus anciens, les plus riches et les plus complexes en informatique.
Contenu
- Les différentes étapes d’un compilateur
- Langages cibles, langages machines
- Analyse lexicale
- Analyse syntaxique
- Traduction dirigée par la syntaxe
- Tables des symboles
- Gestion des types
- Gestion mémoire
- Représentations intermédiaires d’un programme
- Génération de code: expressions arithmétiques, expressions logiques, boucles, appels de fonctions, instructions conditionnels.
- Introduction à l’optimisation de code
Pédagogie par projet
Ce cours sera dispensé sous forme d’un enseignement magistral, de travaux dirigés (exercices corrigés) et d’un projet (programmer un compilateur en langage C).
Modalités de contrôle des connaissances
- Projet (50%)
- Contrôle terminal (50%)