Informations générales
Volumes horaires
- CM 24.0
- Projet -
- TD 10.0
- Stage -
- TP 14.0
- DS -
Crédits ECTSCré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 :
- Cursus ingénieur - Tronc Commun - Semestre 7
Informations complémentaires
Code de l'enseignement : 4MMCOMP
Langue(s) d'enseignement : 
Vous pouvez retrouver ce cours dans la liste de tous les cours.
Bibliographie
TBD