Compilation - 4MMCOMP

Informations générales

  • Volumes horaires

    • CM 24.0
    • Projet -
    • TD 10.0
    • Stage -
    • TP 14.0
    • DS -

    Crédits ECTS

    Crédits ECTS 4.0

Objectif(s)

  • Comprendre les langages de programmation au-delà des aspects syntaxiques
  • Mettre en œuvre un compilateur simple
  • Interpréter correctement les messages d'erreur d'un compilateur

Responsable(s)

Laure GONNORD

Contenu(s)

Le cours expose les concepts suivants:

  • Rôle et architecture d'un compilateur
  • Analyses lexicale et syntaxique
  • Analyses sémantiques, typage
  • Structures de données d'un compilateur (représentations intermédiaires): arbres de syntaxe, graphe de flot de contrôle, forme SSA
  • Génération de code vers assembleur avec allocation de registre

Ces concepts sont mis en œuvre en TP via la réalisation d'un compilateur d'un mini langage impératif.

Prérequis

  • Familiarité avec un langage de programmation impératif (C, Java…,)
  • Notions sur les grammaires et langages réguliers et hors contexte
  • Notions de base en programmation assembleur : langage d'assemblage, pile à l'exécution

Contrôle des connaissances

Evaluation : 25% de TP et projets notés + examens écrits et oraux et 75% de Examen écrit (1,5H)

Rattrapage : 25% de TP et projets notés + examens écrits et oraux (note reportée) et 75% de Examen écrit (1,5H)

  • E1 = Session 1 Written, 1.5 hours, no document or calculator allowed.
  • E2 = Session 2: Written, 1.5 hours, no document or calculator allowed.
  • CC = 1 or more marks (lab delivery, in-house problems, paper assessment)

Calendrier

Le cours est programmé dans ces filières :

cf. l'emploi du temps 2026/2027

Informations complémentaires

Code de l'enseignement : 4MMCOMP
Langue(s) d'enseignement : FR

Vous pouvez retrouver ce cours dans la liste de tous les cours.

Bibliographie

TBD