Présentation des techniques et outils standards pour la compilation, pour une mise en oeuvre dans le projet IF204. Le plan du cours est:

  1. Objectif d'un compilateur, pourquoi étudier la compilation
  2. Expressions régulières et langages réguliers, quelques rappels
  3. Langages algébriques et grammaires
  4. Analyseurs syntaxiques, méthodes descendantes LL et ascendantes LR, PEG; mise en oeuvre dans un outil (Yacc)
  5. Analyse sémantique: grammaires attribuées, calculs d'attributs tels que les types
  6. Génération de code: pour une machine à pile, pour une machine à registres. Principaux schémas de traduction, allocation de la mémoire
  7. Problèmes d'optimisation: allocation de registre, optimisation de code, ...
  8. Les dernières phases de compilation: assembleur, édition de lien, chargeur.