Présentation des techniques et outils standards pour la compilation, pour une mise en oeuvre dans le projet IF204. Le plan du cours est:
- Objectif d'un compilateur, pourquoi étudier la compilation
- Expressions régulières et langages réguliers, quelques rappels
- Langages algébriques et grammaires
- Analyseurs syntaxiques, méthodes descendantes LL et ascendantes LR, PEG; mise en oeuvre dans un outil (Yacc)
- Analyse sémantique: grammaires attribuées, calculs d'attributs tels que les types
- Génération de code: pour une machine à pile, pour une machine à registres. Principaux schémas de traduction, allocation de la mémoire
- Problèmes d'optimisation: allocation de registre, optimisation de code, ...
- Les dernières phases de compilation: assembleur, édition de lien, chargeur.