Automates, langages et compilation

Crédit : 5 ECTS

Volume horaire

  • CM : 51 h
  • Volume horaire global (hors stage) : 51 h

Compétences à acquérir

  • Être capable de reconnaître et de définir des langages rationnels et algébriques, et de manipuler les structures qui les représentent
  • Pouvoir écrire un analyseur syntaxique simple pour analyser des données structurées

Description du contenu de l'enseignement

Le but de ce cours est d'acquérir les bases des langages formels :
  1. Mots et langages, lemme d'Arden (équations linéaires sur les langages)
  2. Automates finis et langages rationnels : équivalence entre langages reconnus par automates finis et langages rationnels. Algorithmes de déterminisation et de minimisation.
  3. Grammaires et langages algébriques. Transformation de grammaires, ambiguïté, équivalence avec les langages reconnus par automates à pile.
  4. Brève introduction à la calculabilité et aux machines de Turing
La principale application de ce cours sera aux premières étapes de la compilation : analyse lexicale et syntaxique, avec utilisation des outils Flex et Bison en TP.

Bibliographie, lectures recommandées

  • Jean-Michel Autebert, Théorie des langages et des automates, 1994, Masson


Année universitaire 2023 - 2024 - Fiche modifiée le : 01-04-2026 (15H54) - Sous réserve de modification.