But
Comprendre les principes fondamentaux de la compilation : aspects th´oriques et appliqués. Utilisation d'outils de haut niveau pour la rĂ©alisation d'un compilateur.
À partir de cette année (2020 - 2021), nous allons changer d'outils pour le cours de compilation. Nous allons utiliser Python qui possède un éco-système très riche.
Dans cet éco-système très riche, j'ai choisi d'utiliser le module PLY qui signifie Python Lex - Yacc. Comme nous le verrons dans le cours, Lex et Yacc sont des outils historiques de création des compilateurs sur l'environnement Unix.
Python présente également deux avantages :
- c'est un langage interprété qui permet de tester rapidement
- avec l'ajout de modules adéquats, nous pourrons visualiser la construction de l'arbre syntaxique
Nous étudierons successivement les concepts suivants :
- L'analyse lexicale
- L'analyse syntaxique
- L'analyse descendante
- L'analyse ascendante
- Analyse LL(1), SLR, LR(1), LALR
- L'analyse sémantique
- Génération de code
- Manipulation des outils ply.lex et ply.yacc
- Réalisation d'un interpréteur
Supports de Cours et de TP
Vous trouverez sur ce site l'ensemble des documents du cours de compilation. Il est nécessaire d'avoir un bon niveau en programmation en Python
Numéro | Titre | Lien |
---|---|---|
01 | Analyse Lexicale | cours |
02 | les expression régulières de Python | ER |
photocopé du livre Python 3 chez Dunod de Cordeau et Pointal | ||
03 | TD nº 1 | expressions régulières |
04 | TD nº 2 | automates finis |
05 | TD nº 3 | Déterminisation des automates | 06 | TP nº 1 Prise en main de PLY | Résumé et TP PLY |
07 | TP nº 2 PLY | Coloration syntaxique |
08 | Mon langage partie 1 | Analyse lexicale |
09 09> | Analyse syntaxique | cours |
10 | TD nº 4 | Les grammaires non contextuelles |