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 les fondamentaux de la compilation.

Responsables

  • Gilles Grimaud
  • Samuel Hym

Volume horaire

  • 1h30 de Cours-TD sur machine par semaine
  • 2h de TPs par semaine

Crédits

5 ECTS

Gilles Grimaud & Samuel Hym
dernière modification : 16/11/2018 à 14:01:27

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.

Pré-requis

L’UE de compilation de niveau M1 fait suite à l’UE AEL de niveau Licence informatique 3ème année. Elle ne revient donc pas sur les notions de :

  • analyse lexicale ;
  • analyse grammaticale.

Contenu

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

  • 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
Séance Cours-TD TP Remarque
0 Introduction. Pretty-printer. Utilisation de l’AST Babel.
1 Interprète 1. Interprétation de programmes simples.
2 Interprète 2. Interprétation des appels de fonctions et des objets.
3 Compilation source-à-source 1. Compilation de programmes simples.
4 Compilation source-à-source 2. Compilation des appels de fonctions et des objets.
5 Génération de code machine.
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.
11 Recettage de l’étude proposée par chaque étudiant. Présentation des travaux pratiques.
Gilles Grimaud & Samuel Hym
dernière modification : 16/01/2019 à 18:05:35

L’évaluation s’effectue suivant une procédure de contrôle continu.

Deux notes seront attribuées à chaque étudiant durant le semestre :

  • TP1 : évaluation du travail effectué sur la partie « tronc commun » (première moitié du semestre),
  • TP2 : évaluation du travail effectué sur le projet d’approfondissement (seconde moitié du semestre).

La note finale (N) est la moyenne de ces notes :

N = (TP1 + TP2) / 2

L’évaluation portant sur le travail effectué tout au long du semestre, il n’y a pas de rattrapage.

L’unité acquise apporte 5 ECTS.

Gilles Grimaud & Samuel Hym
dernière modification : 16/11/2018 à 13:55:26

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