Partager cette page :
Discipline(s) : Infomatique et télécommunications

Compilation avancée

Semestre Semestre 2
Type Facultatif
Nature UE

Pré-requis

  • Un cours introductif en compilation
  • Un cours d’algorithmique des graphes
  • Un cours de programmation fonctionnelle (les TP seront réalisés dans un langage fonctionnel type Scala ou Caml)

Objectifs

Étudier et implémenter des techniques de compilation avancée pour l’optimisation de programme.



Compétences acquises :
  • Conception d’analyses statiques optimisantes
  • Algorithmique des graphes pour l’allocation de registres
  • Comprendre les mécanismes de gestion automatique de la mémoire par ramasse-miettes

Contenu

Cours

  • Rappel sur l’architecture d’un compilateur – Présentation de la forme SSA – L’exemple LLVM
  • Analyse de flots de données – Cadre générique – Exemples
  • Allocation de registre – Coloriage de graphe – Fusion de registres
  • Algorithmes de ramasse-miettes
Travaux dirigés

Les cours et les TP comporteront des phases de travaux dirigés.

Travaux pratiques

  • Implémentation d’analyses statiques optimisantes dans un compilateur
  • Implémentation d’algorithmes de coloriage de graphe
  • Implémentation d’un ramasse-miette dans un interpréteur

Mise à jour le 13 avril 2018