Master informatique
Compilation 1 (COMP1)
Code apogéeDINF7CPLStructurexxDernière mise à jour le23 Novembre 2017
Responsable pédagogiqueNICOLAS Valérie-anne (Maître de conférences, 27ème section)
Parcours
  • Master 1 2017-2022
TypeObligatoire
Semestre7Volume horaire48Crédits ECTS 4
Nombre d'heures Cours magistraux (CM)0 Travaux dirigés (TD)32 Travaux pratiques (TP)16 
Pré-requis

Algorithmique, automates à états finis, expressions régulières, programmation en Java.


 

 

Co-requis 
Objectif Terminal
  • Acquisition des fondements théoriques et des principes méthodologiques nécessaires à la compréhension et à la réalisation des différentes phases constitutives de la compilation, de l’analyse lexicale à la génération de code.
  • Capacité à mettre en pratique ces principes dans le cadre d’applications Java.
Objectif Pédagogique
  • Automatisation des traitements sur des fichiers via l'utilisation des méthodes et outils présentés.  
  • Mise en oeuvre d'éléments d'un compilateur (simple) en utilisant les outils Java dédiés.
Contenu détaillé de l'enseignement
  • Analyse lexicale : langages réguliers/grammaires régulières, reconnaisseurs associés (automates à états finis), principes des générateurs d’analyseurs lexicaux.
  • Analyse syntaxique : langages et grammaires algébriques, reconnaisseurs asssociés (automates à pile), principes des générateurs d’analyseurs syntaxiques (LL et LR).
  • Analyse sémantique (DDS, attributs hérités/synthétisés, table des symboles, typage).
  • Traduction dirigée par la syntaxe (production de code).
  • Application avec des outils Java.
Méthodes d'enseignementCours/TD et TP.
Evaluation session 11 écrit (2h, coefficient 3) + 1 note de CC (coefficient 1)
Evaluation session 21 écrit (2h)
Références Bibliographiques
  • Aho, Sethi, Ullman : "Compilateurs : principes, techniques et outils", InterEditions, 1991
  • Wilhelm, Maurer : "Compiler Design", Addison-Wesley, 1995 N. Silverio : "Réaliser un compilateur", Eyrolles, 1995