Code
IGFF CSC 4251
Level
M1
Graduate
Graduate
Semester
Fall
Domain
Informatique
Program
Programme Ingénieur
Language
Français/French
ECTS Credits
2,5
Class hours
48
Workload
70
Program Manager(s)
Department
- Informatique
Educational team
Organisation
Cours/TD/TP/projet/examen : CSC4251+CSC4252 : 15 séances de Cours IntégrésLearning objectives
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.
Prerequisites
Algorithmique et structures de données, et programmation en JAVA
Keywords
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
Content
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
References
Site du cours : https://www-inf.telecom-sudparis.eu/COURS/CSC4251_4252
Pedagogical methods
CSC4251 et CSC4252 indissociable, c.-à-d. co-requis : une seule évalution.