Langages formels et automates
Présentation
Le cours présente les notions relatives aux langages réguliers et aux automates à états finis. On présente également des outils dans le cadre de l’analyse lexicale.
- Introduction aux langages formels : alphabets, mots, facteurs, ordre sur les mots, opérations ensemblistes et algébriques sur les langages, fermetures des langages, langages réguliers, expressions régulières.
- Introduction aux automates : automates déterministes et non déterministes, calculs dans un automate, langages reconnaissables, automates complets, produits d'automates, déterminisation des automates, automates asynchrones, théorème des éliminations des epsilon-transitions, exemples de langages reconnus, théorème de Kleene, l’algorithme de Brzozowski et Mac Cluskey, minimisation des automates. Exemples d'applications d'automates.
Pré-requis nécessaires
notions d’algorithmique et de programmation étudiées en licence première année.
Compétences visées
- Comprendre les notions générales relatives aux automates.
- Etre capable d’appliquer les méthodes de simplification ou de réduction associées automates.
- Être capable d'établir les liens entre les automates et les langages réguliers.
- Être capable de concevoir des analyseurs lexicaux.