École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Écrit par

dans

Master Professionnel en Informatique, option Génie Logiciel (MGL) › Master 2 › Master GL · S3 · UE4 — Automates, langage et compilation

Automates, langage et compilation

Code ALC5341 6 crédits CM 20h · TD 20h · TP 20h · TPE 60h Évaluation : CC + ET

👤 Dr IBRAHIM MOUSSA — Docteur en Recherche opérationnelle et aide à la décision

Se connecter pour s'inscrire Créer un compte

4 leçon(s) · 1 quiz · 0 inscrit(s)

Présentation

Ce cours de spécialité présente les fondements théoriques des langages (langages formels, automates, grammaires) et leur application à la construction de compilateurs et d’interpréteurs. Au-delà du compilateur, ces techniques sont quotidiennes pour l’ingénieur logiciel : validation d’entrées par expressions régulières, langages dédiés de règles métier, analyse de fichiers et de formats, outils d’analyse statique et de qualité du code. Les TP guidés conduisent à la réalisation complète d’un interpréteur pour un mini-langage, EPIScript.

Objectifs d’apprentissage

  • Manipuler expressions régulières et automates finis (déterminisation, minimisation) ;
  • Réaliser un analyseur lexical et définir la syntaxe d’un langage par une grammaire hors contexte non ambiguë ;
  • Construire des analyseurs syntaxiques LL(1) et comprendre l’analyse LR (SLR, LALR) ;
  • Mettre en œuvre l’analyse sémantique (table des symboles, typage, grammaires attribuées) ;
  • Générer et optimiser du code intermédiaire ; réaliser un interpréteur complet.

Prérequis

Algorithmique et structures de données (arbres, piles, tables de hachage), mathématiques discrètes (ensembles, relations), programmation en Python ou Java.

Plan du cours

  1. Leçon 1 — Langages formels, expressions régulières et automates finis
  2. Leçon 2 — Analyse lexicale et grammaires hors contexte
  3. Leçon 3 — Analyse syntaxique descendante et ascendante
  4. Leçon 4 — Analyse sémantique et génération de code

Modalités d’évaluation

Volume horaire : 20 h de cours magistraux, 20 h de travaux dirigés, 20 h de travaux pratiques, 60 h de travail personnel (6 crédits). Évaluation : contrôle continu (TD, TP guidés et projet d’interpréteur, quiz) et examen terminal écrit.

Bibliographie

  • Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools, 2e éd., Pearson (traduction française : Compilateurs : principes, techniques et outils).
  • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Pearson.
  • Michael Sipser, Introduction to the Theory of Computation, Cengage.
  • Terence Parr, The Definitive ANTLR 4 Reference, Pragmatic Bookshelf.
  • Andrew W. Appel, Modern Compiler Implementation in Java, Cambridge University Press.

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.

Programme

  1. 🔒 Leçon 1 — Langages formels, expressions régulières et automates finis · 90 min
  2. 🔒 Leçon 2 — Analyse lexicale et grammaires hors contexte · 90 min
  3. 🔒 Leçon 3 — Analyse syntaxique descendante et ascendante · 90 min
  4. 🔒 Leçon 4 — Analyse sémantique et génération de code · 90 min
  5. 🔒 Quiz — Automates, langage et compilation · quiz

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.