S. Touati

Compilation

Introduction aux méthodes d'analyse syntaxique et d'analyse sémantique, dans le cadre de la construction de compilateurs et de traduction d'un formalisme en un autre.

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

  1. Les différentes étapes d’un compilateur
  2. Langages cibles, langages machines
  3. Analyse lexicale
  4. Analyse syntaxique
  5. Traduction dirigée par la syntaxe
  6. Tables des symboles
  7. Gestion des types
  8. Gestion mémoire
  9. Représentations intermédiaires d’un programme
  10. Génération de code: expressions arithmétiques, expressions logiques, boucles, appels de fonctions, instructions conditionnels.
  11. 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%)