Il s'agit d'une unité d'enseignement optionnelle du second semestre de la première année du master informatique qui enseigne la compilation. L'enseignement est décomposé en deux parties. Durant les 6 premières séances, le cours enseigne les techniques fondamentales de la compilation (analyse lexicale, analyse grammaticale, arbre abstrait, interprétation et génération de code). Durant les 6 dernières séances, les étudiants choisissent l'une des problématiques de compilation qu'ils approfondiront.
L'enseignement est dispensé pendant 12 semaines, à raison de :
5 ECTS
Cette UE enseigne les fondamentaux de la compilation, c'est-à dire l'ensemble des techniques qui permettent d'exécuter des programmes sur un microprocesseur, à partir d'un fichier source.
L'UE de compilation commence par enseigner un ensemble de techniques de base qui constituent la colonne vertébrale des compilateurs :
Ensuite l'UE se spécialise sur des techniques plus spécifiques. Selon leurs centres d'intérêt les étudiants pourront étudier en binome l'une des 10 techniques suivantes :
Consultez l'emploi du temps de référence du semestre sur le portail du MS2, onglet "Calendrier".
Séance | Cours-TD | TP | Remarque |
---|---|---|---|
0 | Principe d'une analyse lexicale. | Implémentation d'un analyseur lexical. Comparaison avec flex. | |
1 | Principe d'une analyse grammaticale. | Implémentation d'un analyseur grammatical utilisant l'analyseur lexical. Comparaison avec yacc. | |
2 | Conception d'un arbre syntaxique. | Création d'un arbre syntaxique et exploitation. | |
3 | Analyse et optimisation structurelle du code. | Application à l'élimination de code mort et à l'évaluation statique d'expressions constantes. | |
4 | Production de code machine. | Application à la production de code i64 et/ou de bytecode java. | |
5 | Optimisation de code machine. | Application à l'optimisation de code i64. | |
6 | Présentation des projets approfondis. | première séance. | Sélection d'un projet d'approfondissement. |
7 | Seconde séance d'approfondissement. | Étude et développement. | |
8 | Troisième séance d'approfondissement. | Étude et développement. | |
9 | Quatrième séance d'approfondissement. | Étude et développement. | |
10 | Cinquième séance d'approfondissement. | Étude et développement. | |
11 | Recettage de l'étude proposée par chaque étudiant. | Présentation des travaux pratiques. |
L'évaluation s'effectue suivant une procédure de contrôle continu. Trois notes seront attribuées à chaque étudiant durant le semestre :
La note finale sur 20 (N) est calculée comme une moyenne pondérée de ces notes :
N = (TP + DS) / 2
La session de rattrapage remplace la partie DS, la note TP est conservée.
L'unité acquise apporte 5 ECTS.