Vous êtes ici : FIL > Portail > Master Informatique > M1S2 > Compil

Compilation

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.

Responsables

Volume horaire

L'enseignement est dispensé pendant 12 semaines, à raison de :

  • 2h de COurs/TD Machine par semaine ;
  • suivi de 2h de TPs par semaine.

Crédits

5 ECTS

Gilles Grimaud & Samuel Hym
dernière modification : 17/10/2017 à 10:12:07

Objectifs

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.

Contenu

L'UE de compilation commence par enseigner un ensemble de techniques de base qui constituent la colonne vertébrale des compilateurs :

  • analyse lexicale ;
  • analyse grammaticale ;
  • arbre syntaxique ;
  • analyse et optimisation structurelle du code ;
  • analyse et optimisation du code machine.

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 :

  1. d'interpréteurs, de compilateurs et de machines virtuelles ;
  2. de compilation à la volée et de compilation "just in time" ;
  3. de compilation de code orienté objet ;
  4. de typage statique et de typage dynamique ;
  5. d'interprétation abstraite et de prédiction de comportement ;
  6. de traitement du polymorphisme et de la généricité de code ;
  7. de compilation de code SIMD ;
  8. de compilation de code GPU ;
  9. de décompilation de code intermédiaire et de code machine ;
  10. de gestion optimisée du tas et d'analyse d'échappement.

Bibliographie

Ouvrages de référence

  • « Compiler Construction Principles and Practice », Kenneth C. Louden, PWS Publishing Company, ISBN-13 0-534-93972-4, 1997
  • « Compilers: Principles, Techniques, and Tools », A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman, ISBN-13: 978 0321486813, Always Learning, 2013
  • « Modern compiler implementation in C », A. Appel, Cambridge University Press, ISBN-10: 0 521 58388 8, 1998
Gilles Grimaud & Samuel Hym
dernière modification : 17/10/2017 à 10:12:07

Consultez l'emploi du temps de référence du semestre sur le portail du MS2, onglet "Calendrier".

Gilles Grimaud & Samuel Hym
dernière modification : 19/10/2017 à 09:54:37
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.
Gilles Grimaud & Samuel Hym
dernière modification : 19/10/2017 à 09:54:43

L'évaluation s'effectue suivant une procédure de contrôle continu. Trois notes seront attribuées à chaque étudiant durant le semestre :

  • TP : une note sur 20 de Travaux Pratiques attribuée par l'enseignant de Travaux Pratiques.
  • DS : une note sur 20 d'un devoir surveillé en milieu de 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.

Gilles Grimaud & Samuel Hym
dernière modification : 19/10/2017 à 09:54:38

Ouvrages de référence

  • « Compiler Construction Principles and Practice », Kenneth C. Louden, PWS Publishing Company, ISBN-13 0-534-93972-4, 1997
  • « Compilers: Principles, Techniques, and Tools », A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman, ISBN-13: 978 0321486813, Always Learning, 2013
  • « Modern compiler implementation in C », A. Appel, Cambridge University Press, ISBN-10: 0 521 58388 8, 1998
Gilles Grimaud & Samuel Hym
dernière modification : 17/10/2017 à 10:12:07