Navigation


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 :

  1. c'est un langage interprété qui permet de tester rapidement
  2. 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 Analyse syntaxique cours
10 TD nº 4 Les grammaires non contextuelles

Horaires

EDT en ligne


Valid XHTML 1.0 Strict