Advanced Compilation 7KUAJN50 | ECTS | 2 | SEMESTRE | S7 | |||||||||||||||||||||||||||||||
CM | TD | TP | EI | Travail personnel | |||||||||||||||||||||||||||||||
7h | 14h | 0h | 0h | 7h | |||||||||||||||||||||||||||||||
Langues d'enseignement | Français | ||||||||||||||||||||||||||||||||||
Responsable(s) | Bonfante Guillaume | ||||||||||||||||||||||||||||||||||
Mots clefs | arbre de syntaxe abstrait, assembleur, x86 | ||||||||||||||||||||||||||||||||||
Prérequis | langage C et python | ||||||||||||||||||||||||||||||||||
Objectif pédagogique | |||||||||||||||||||||||||||||||||||
A l’issue du module, les étudiants seront en mesure de construire un compilateur entre un langage de haut niveau et un langage de bas niveau. Plus généralement, le cours aborde la notion de transformation de données. | |||||||||||||||||||||||||||||||||||
Organisation et contenus | |||||||||||||||||||||||||||||||||||
A partir d'un langage de haut niveau (de type impératif, e.g. C), on produit un compilateur vers le langage X86. Séance 1 : mise en place du langage de haut niveau. Notion de sémantique, Séance 2 : extraction d'un AST à l'aide de Lark Séance 3 : présentation de X86, construction du plan du compilateur Séance 4 : implémentation du compilateur Séance 5 : mise en route de l'extension, syntaxe Séance 6 : mise en route de l'extension, sémantique Séance 7 : évaluation orale | |||||||||||||||||||||||||||||||||||
Compétences | |||||||||||||||||||||||||||||||||||
Niveaux | Description et verbes opérationnels | ||||||||||||||||||||||||||||||||||
Connaître | identifier la structure du langage source, identifier la structure du langage cible, décrire la sémantique associées aux langages | ||||||||||||||||||||||||||||||||||
Comprendre | décrire la transformation du langage source vers le langage cible en respectant les sémantiques | ||||||||||||||||||||||||||||||||||
Appliquer | extraire de l'information à partir de bibliothèque comme Lark, écrire un programme en nasm, débug à bas niveau | ||||||||||||||||||||||||||||||||||
Analyser | |||||||||||||||||||||||||||||||||||
Synthétiser | implémenter un compilateur | ||||||||||||||||||||||||||||||||||
Évaluer | tester la correction d'un compilateur, tester la couverture d'un langage | ||||||||||||||||||||||||||||||||||
Contributions aux Objectifs de Développement Durable des Nations Unis | |||||||||||||||||||||||||||||||||||
Modalités de contrôle des connaissances et compétences | |||||||||||||||||||||||||||||||||||
Contrôle Continu | Examen écrit | Oral / Soutenance | Rapport / Projet |