CSC4251_4252 — Compilation : du langage de haut niveau à l'assembleur
Portail informatique
Mementos et Manuels
Memento JFlex
Manuel officiel JFlex
Memento CUP
Manuel officiel CUP
Memento JAVA
Memento MIPS
Memento MiniJAVA
Codes
Archétypes Maven pour JFlex et CUP
Projet MiniJAVA
Contenu
Syntaxe 1
Analyse lexicale(1/2)
Prolégomènes
Analyse Lexicale(1/2)
Introduction
(40mn)
Chapitre 0
Cours
(50mn)
Chapitre 1 (+ diapositives 3 et 4 du
Chapitre 5
)
Cours Pratique
(20mn)
Chapitre Maven et autres
Memento JFlex
(20mn)
Sections 1 à 4
TP
(50mn)
Exos JFlex :
1
, 2, 3
Introduction du cours
compilation / interpretation / traduction
phases de la compilation
Analyse lexicale versus syntaxique
Hiérarchie de Chomsky, catégorie lexicale, grammaire
Premiers pas d'analyse lexicale
Expression régulière
Outil JFlex
Syntaxe 2
Analyse Lexicale(2/2)
Cours
(50mn)
Chapitre 2
Cours Pratique
(20mn)
Memento JFlex : 5 à 7
TP
(110mn)
Exos JFlex :
4
, 5,
6|7
, 8
Théorie des langages
Automate fini et langage régulier
Expressions régulières non triviales
Outillage de code avec JFlex
Syntaxe 3
Analyse Syntaxique (1/4)
Cours
(50mn)
Chapitre 3
Cours Pratique
(20mn)
Memento CUP : 1 à 4
TP
(110mn)
Exos CUP :
1
,
2
, 3
Grammaire Algébrique
définition et exemples
ambiguïté
syntaxe BNF
Premiers pas CUP
couplage avec JFlex,
Tokens
écriture de grammaires
Syntaxe 4
Analyse Syntaxique (2/4)
Cours
(50mn)
Chapitre 4
Cours Pratique
(20mn)
Memento CUP : 5 à 7
TP
(110mn)
Exos CUP :
4
(, 5)
Analyse Syntaxique LL et LR
Déterminisme, Ambiguïté et Conflit
Valeur sémantique des symboles
Analyse complète d'un langage
Syntaxe 5
Analyse Syntaxique (3/4)
Cours Pratique
(20mn)
Memento CUP : 8
TP
(160mn)
Exos CUP :
6, 7
"Calculatrice"
Interprétation à la volée
Priorité (LR)
Traitement d'erreur (LR)
Syntaxe 6
Analyse Syntaxique (4/4)
Cours
(30mn)
Chapitre 6
Cours Pratique
(30mn)
Memento JAVA : 1
TP
(120mn)
Exos CUP :
8, 9
(, 10, 11)
Arbre de Syntaxe Abstraite
Interprétation sur arbre : évaluation, boucles
Arbre de Syntaxe et typage objet
Patron de conception Visiteur et parcours d'arbre
Bonus
Bonus
Bonus en hors présentiel
Bootstrap :
TP Brainfuck
(120mn)
TD langages
(150 mn)
En vrac :
Exercices JFlex/CUP
(??? mn)
Paradoxe du bootstrap,
compiler un compilateur Brainfuck écrit en Brainfuck ?!?,
comparaison performances compilation
versus
interprétation
Exercices de TD sur la théorie des langages
Exercices supplémentaires de TP JFlex et CUP en vrac
TP noté 1
TP noté (1/2)
Analyse lexicale et analyse syntaxique (90mn)
Archi1
Archi (1/2)
Cours
(30mn)
L'assembleur MIPS
Cours Pratique
(60mn)
Memento MIPS : 1 à 5
TP
(90mn)
Instruction, Registre
Assembleur et outil MARS
Structures algorithmiques : if, for, etc.
Appel de fonction, variables locales
Archi2
Archi (2/2)
TP
(180mn)
Sémantique 1
MiniJAVA
Cours Pratique
(30mn)
Memento JAVA : 2, 3 et 4
Memento MiniJAVA
Sections 1 à 4, et 10
TP
(180mn)
Étapes 0 et 1
Langage MiniJAVA
Structure du compilateur
Analyse lexicale et Syntaxique
Arbre de Syntaxe Abstraite
Sémantique 2
Analyse Sémantique (1/2)
Cours
(30mn)
Chapitre 7 (début)
TP
(150mn)
Étape 2
Memento MiniJAVA
Sections 5 à 7
Phases de Compilation
Analyse sémantique
Principes
Arbres décorés, attributs sémantiques
Table de symboles : liaison et visibilité des identificateurs
Sémantique 3
Analyse sémantique (2/2)
Cours
(20mn)
Chapitre 7 (fin)
TP
(160mn)
Étape 3
Des fonctions sémantiques
Contrôle de type
Sémantique 4
Forme Intermédiaire
Cours
(30mn)
Chapitre 8
TP
(150mn)
Étape 4
Memento MiniJAVA
Section 8
Partie avant et arrière d'un compilateur
Linéarisation, Canonisation
Code à 3 adresses
Sémantique 5
Génération MIPS (1/2)
Cours
(30mn)
Chapitre 9
TP
(140mn)
Étape 5
Memento MiniJAVA
Section 9
Allocation mémoire, registre
Cadre et Convention d'appel
Sélection d'instruction
Sémantique 6
Génération MIPS (2/2)
TP
(180mn)
Étapes 6—8
Finalisation et Test du compilateur
Ajouter le type Tableaux d'entiers
Revoir l'ensemble des phases de compilation
Sémantique 7
Finalisation de MiniJAVA
Rendu Moodle
Finalisation et Test du compilateur
Ajouter le type Tableaux d'entiers
Revoir l'ensemble des phases de compilation
TP noté 2
TP noté (2/2)
Analyse sémantique, principalement (90mn)
Fiche Programme
Emploi du temps
Sorry, the requested resource doesn't exist