Code
IGFF CSC 4251
Niveau
M1
Graduate
Graduate
Semestre
Fall
Domaine
Informatique
Programme
Programme Ingénieur
Langue
Français/French
Crédits ECTS
2,5
Heures programmées
48
Charge de travail
70
Coordonnateur(s)
Département
- Informatique
Equipe pédagogique
Organisation
Cours/TD/TP/projet/examen : CSC4251+CSC4252 : 15 séances de Cours IntégrésAcquis d'apprentissage
Objectifs :
1. Étudier l'enchaînement menant de l'écriture d'un programme dans un langage de haut niveau à son exécution.
2. Comprendre les différents outils conceptuels et techniques mis en jeu dans la réalisation d'un compilateur (ou interpréteur ou traducteur).
3. Mettre en œuvre ces outils à travers la réalisation d'un compilateur d'un sous-ensemble de JAVA vers l'assembleur MIPS.
Ces objectifs généraux du cours se déclinent sur trois directions plus spécifiques :
• étudier l'architecture des processeurs et l'écriture de code assembleur ;
• introduire la théorie des langages et maîtriser ses utilisations pratiques en informatique à travers les outils de génération de compilateur (compiler's compiler) ;
• approfondir la maîtrise de la programmation dans un langage évolué, d'une part, par la compréhension de la façon dont les patrons de conception sont mis en œuvre, et d’autre part, par la pratique dans l'écriture en JAVA d'un compilateur.
Prérequis
Algorithmique et structures de données, et programmation en JAVA
Mots-clés
Analyse lexicale, analyse syntaxique, analyse sémantique, génération de code, processeur, registre, pile et tas, assembleur (MIPS), expression régulière, langage algébrique, compiler-compiler (JFlex, CUP), arbre de syntaxe abstraite, table de symbole, contrôle de type, code intermédiaire, patron de conception Visiteur
Contenu
Analyse Syntaxique :
- chaîne de compilation, analyse lexicale et syntaxique, hiérarchie de Chomsky,
- expression régulières et utilisation de l’outil JFlex,
- automate fini et langage régulier,
- grammaire algébrique et utilisation de l’outil CUP,
- analyse syntaxique LR.
Architecture de processeur :
- structure d’un processeur,
- instructions, registres, assembleur (MIPS),
- mémoire, appel de fonction, pile, cadre d’appel, appel système.
Compilation et réalisation d'un compilateur :
- parcours d'arbres et patron de conception Visiteur,
- analyse sémantique, table de symbole, contrôle de type,
- génération de code intermédiaire,
- génération de code, modèle d'appel, allocation de registre.
Evaluation
- 2 TP notés de 1h30 (50%)
- 1 rendu final sur le projet fil rouge (50%)
- pas de CF2
Bibliographie
Site du cours : https://www-inf.telecom-sudparis.eu/COURS/CSC4251_4252