CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
3IF2030 - Traitement des Langages

30 HEE, 15 HPE

Contact

Benoît Valiron benoit.valiron@centralesupelec.fr

Objectifs

L’objectif est de présenter les principales méthodes et techniques permettant le traitement automatisé de divers langages, c’est-à-dire leur « compréhension » ou leur « modification » par l'ordinateur. Ce cours recouvre donc les domaines de la compilation, de l'interprétation et de la transformation de langages. et de la transformation de langages.

Déroulé du cours

10 créneaux d'1h30 (15 HPE) : 6 cours, 1 cours sur machine (3h00), un bureau d'étude (3h)

  • CM 1 - Introduction à la chaine de traitement ; analyse lexicale
    • Notions d'analyse lexicale et syntaxique
    • Vocabulaire dédié à un langage : Lexèmes
    • Principe de l'analyseur lexical
  • CM 2 - Syntaxe et Structure
    • Notion de grammaire formelle
    • Classification de Chomsky
    • Réduction, dérivation
    • Arbre syntaxique
    • Grammaires : Non-unicité, ambiguité
  • CM 3 - Analyse syntaxique descendante
    • Méthodes avec backtracking
    • Récursivité à gauche
    • Méthodes prédictives
    • LL(1), LL(k), LL(*)
    • Descente récursive
  • Cours sur machine (3h)
    • Réalisation à la main d'un parseur à descente récursive
  • CM 4 - Analyse syntaxique ascendante
    • Dualité d'avec les méthodes descendantes
    • Grammaires LR(k)
    • Automate LR(0)
    • Les conflits et leurs résolutions
  • CM 5 - Actions sur l'arbre syntaxique
    • Traduction dirigée par la syntaxe
    • Arbre de syntaxe abstrait (AST) et structure métier
    • Fonctionnement d'un compilateur : survol du fonctionnement de GCC et LLVM
  • CM 6 - Présentation d'un générateur de parseur : ANTLR
  • Bureau d'étude (3h)
    • Implémentation d'un compilateur pour un petit langage, en utilisant ANTLR

Les 10 HEE restantes sont consacrées à la finalisation des travaux réalisés en cours sur machine et en bureau d'étude.

Biblio

  • A. W. Appel. Modern Compiler Implementation in Java, Second Edition. Cambridge University Press, 2002.
  • A. Aho, M. Lam, R. Sethi, et J. Ullman. Compilateurs : principes, techniques et outils (2ème édition). Pearson Education, 2007.
  • T. Parr, The Definitive ANTLR Reference. The Pragmatic Bookshelf, 2007.
  • T. Parr, The Definitive ANTLR 4 Reference. The Pragmatic Bookshelf, 2013.