Automates et grammaires (A&G) - KAIN5M06

  • Volumes horaires

    • CM 16.0
    • Projet -
    • TD 14.0
    • Stage -
    • TP 4.0
    • DS 4.5

    Crédits ECTS

    Crédits ECTS 0.5

Objectif(s)

L'enseignement « Automates et Grammaires » comporte 4 volets :

  • La présentation de résultats fondamentaux de l'informatique
    • une technique de preuve de correction de programmes,
    • différents modèles de calculs (séquentiel, parallèle, non-déterministe),
    • comment réaliser, en un temps fini, des opérations sur des données infinies (les langages représentés sous forme d'automates)
    • la récursivité
  • L'illustration des ces notions dans le cas des automates et des grammaires
  • Un exemple concret d'utilisation récente des automates
    vérification de drivers, protocoles médicaux, personnage autonome dans les jeux vidéo, ...
  • Un exemple concret d'utilisation des grammaires attribuées

Compétences visées

  • savoir prouver qu'un programme est correct
  • savoir programmer à l'aide d'un automate
  • savoir écrire un analyseur/traducteur simple

Contenu(s)

  • Preuve de correction partielle de programmes par la technique de Floyd-Hoare-Dijkstra
    comment être sûr que un programme fait bien ce qu'on attend. Autrement dit, monterez-vous dans l'avion dont vous avez programmé le pilote automatique ?
  • Automates (à nombres d'états finis/à pile, déterministes/non-déterministes)
    quel est le modèle de calcul d'un processeur ? y'a t'il des langages (des modèles) plus puissants que d'autres ?
  • Représentations équivalentes (des grammaires régulières = équations d'Arden = expressions régulières = automates à nombre d'états fini)
    Comment passent-on d'une description lisible par un humain à une version utilisable par un processeur ?
  • Application et implantation des automates
    Les automates sont utilisés pour programmer (des analyseurs lexicaux, des micro-controlleurs, des interfaces, des protocoles, des jeux,...), pour piloter (des chaines de production, des systèmes cyber-physiques,...) et pour vérifier (des drivers, des politiques de sécurité ...) en fait on en trouve un peu partout.
  • Grammaires attribuées et génératives
    Les grammaires sont le quotidien des informaticiens qui ne cessent de traduire un langage ou des données d'un format vers un autre.
  • Application (mini-projet)
    Implantation d'un traducteur de format de données à l'aide d'un générateur d'analyseurs syntaxiques (ANTLR ou JavaCC)

Prérequis

Connaissance de bases d'un langage de programmation impérative tel que C

Contrôle des connaissances

75% contrôle continu
25% examen terminal

  • en présentiel
  • épreuve écrite de 1h30 en ligne sur PC avec le logiciel SafeExamBrowser sous windows ou macOs
  • aucun document autorisé
  • en cas de tiers-temps : 1/3 temps supplémentaire
  • appareils électroniques autorisés : pc uniquement
    En cas de non validation d’une UE, le jury peut autoriser l’élève ingénieur à passer des épreuves complémentaires pour la valider.

Calendrier

Le cours est programmé dans ces filières :

  • Formations d'ingénieur - INFO - Semestre 5

Informations complémentaires

Code de l'enseignement : KAIN5M06
Langue(s) d'enseignement : FR

Vous pouvez retrouver ce cours dans la liste de tous les cours.

Bibliographie

Pour aller plus loin :

  • en français

1. Introduction à la calculabilité - Pierre Wolper - Éditions Dunod (3eme édition, 2006)
2. Compilateurs: principes, techniques et outils - A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman - Éditions Pearson France éduction (2nde édition, 2007)

  • en anglais

1. Introduction to Automata Theory, Languages, and Computations - J.E.Hopcroft, R.Motwani, J.D.Ullman - Pearson Editor (3rd edition)
2. Compilers: Principles, Techniques, and Tools - A.V.Aho, M.S.Lam, R.Sethi, J.D.Ullman - Pearson Editor (2nd edition, 2007)