Compilation : Du langage de haut niveau à l’assembleur -1

Catalog of Télécom SudParis courses

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és

Learning 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.