Vous êtes ici

  1. Accueil
  2. UE5 - Compilation

UE5 - Compilation

UE5 - Compilation

En pratique :

Volume horaire global de TD : 24
Volume horaire global de TP : 24
Langue principale : français
Nombre de crédits européens : 5

Description du contenu de l'enseignement

Ce cours introduit les bases de la compilation, en particulier les différents niveaux d'analyse présents dans un compilateur : l'analyse lexicale, l'analyse syntaxique et l'analyse sémantique. Ce module permet d'appliquer des notions de compilation, de théorie des langages (automates finis, grammaires), de modélisation par objets à la réalisation d'un compilateur de programmes écrits dans un langage de type impératif et à la réalisation d'un éditeur de liens.

Cet enseignement est proposé uniquement dans le parcours informatique et y est obligatoire. Il est lié aux enseignements de langages formels et de bases de la modélisation par objets de L3 et prépare à l'enseignement d’analyse dirigée par la syntaxe et d'analyse statique de M1.

Programme
1. Programmation par automates finis ; analyses lexicale et syntaxique
2. Analyse dirigée par la syntaxe ; analyse syntaxique descendante
3. Gestion des identificateurs et analyse sémantique
4. Éléments de compilation : calcul de type et compilation des expressions ; compilation des instructions et des procédures ; compilation séparée et édition de liens.
5. Contraintes sur les grammaires

Un projet consiste à écrire un compilateur et un éditeur de liens pour un petit langage impératif. Ce projet présente l'avantage de faire travailler les étudiants par groupes.

 


Compétences à acquérir

  • À la fin du cours, les étudiants ont compris des concepts et outils utilisés en compilation des langages et dans de nombreux autres domaines.
  • Ils ont réalisé un logiciel complexe (nécessitant au moins 10 des 12 séances de TP et une quantité de travail personnel non négligeable) dans un contexte de modélisation par objets. Pour cela, ils ont programmé en Java et utilisé le générateur d’analyse syntaxique ANTLR.
  • Ils ont appliqué des notions abstraites étudiées dans plusieurs UE du semestre précédent, en particulier la description de langages (grammaires, automates).
  • Ils ont commencé à appréhender la méthode « Agile » de conception d'un logiciel

Modalités d’organisation et de suivi

4h par semaine en présentiel (2h TD + 2h TP)
3-4h par semaine en moyenne de travail personnel (essentiellement de préparation/continuation des TP + quelques exercices)

 


Bibliographie, lectures recommandées

  • « Compilateurs : Principes, Techniques et Outils », Aho A., Lam M., Sethi R.,Ullman J., Pearson Education, 2007
  • « Compilateurs » Grune D., Bal H. E., Jacobs C. J. H., Langendoen K. G., Dunod 2002

Intervenant(s)

VERONIQUE MASSON
ANNE GRAZON

Pré-requis

Pré-requis obligatoires

avoir suivi les UE de langages formels (LF), de programmation (PRG), et de bases de la modélisation par objets (BMO) du premier semestre de L3 Informatique.