3ème année licence Systèmes Informatiques (SI)

Compilation

Course ID
COM
Campus
Département Informatique
Level
Licence
Semester
Semestre 5
Credit
4
Method
Cours, TD, TP

Objectifs de l’enseignement :

Etudier les phases et techniques d’analyse du texte-source au code assembleur. Il présente les différentes phases d’analyse et présente les outils de génération de compilateurs comme Lex et Yacc.

Connaissances préalables recommandées : ///

 

Contenu de la matière :

  1. Rappel des notions fondamentales de la théorie des langages
  2. Introduction à la Compilation
    • Les différentes étapes de la Compilation
    • Compilation, Interprétation, Traduction
  3. Analyse lexicale
    • Expressions régulières
    • Grammaires
    • Automates d’états finis
    • Un exemple de générateur d’analyseurs lexicaux : LEX
  4. Analyse syntaxique
    • Définitions : grammaire   syntaxique,    récursivité   gauche,    factorisation    d’une grammaire, grammaire e-libre.
    • Calcul des ensembles des débuts et
    • Méthodes d’analyse descendantes : la descente récursive, LL(1).
    • Méthodes d’analyse ascendantes : LR(1), SLR(1), LALR(1), (méthode des items).
    • Un exemple de générateur d’analyseur syntaxique :
  5. Traduction dirigée par la syntaxe (Analyse sémantique)
  6. Formes intermédiaires
    • forme postfixée
    •  quadruplés
    • triplés directs et indirects
    • arbre abstrait
  7. Allocation – Substitution- Organisation des données à l’exécution
  8. Optimisation du code objet
  9. Génération du code objet

 Mode d’évaluation :

Examen (50%), contrôle continu (50%)

Références bibliographiques :

  • Aho, M. Lam, R. Sethi, J. Ullman, Compilateurs principes, techniques et outils, 2ème édition. Pearson Education, 2007.
  • Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages and Computation, 2ème édition Pearson Education International, 2001.
  • Appel, Modern compiler implementation in C, Cambridge University Press, 1998.
  • Fraser,    D.Hanson.     A     Retargetable    C    Compil.:    Design    and    Implement. Benjamin/Cumming, 1995.

Polycopiés et sites internet à consulter :