Curriculum LDD Informatique-Mathématiques
Cours : Langages Formels (S2)
Objectifs : Ce cours étudie les familles de langages rationnels et algébriques, des concepts essentiels de l'informatique fondamentale. Entre autres, nous présentons différentes caractérisations de ces langages en termes d'automates, d'expressions régulières, de grammaires, de monoïdes et de logique. Une application majeure étant l'analyse lexicale et syntaxique dans la construction des compilateurs, nous en étudierons les bases théoriques et les mettrons en pratique à travers un projet.
Plan détaillé :
- Mots, langages et leurs opérations
- Automates finis déterministes et non-déterministes, déterminisation, propriétés de clôture, lemme de l'étoile
- Résiduels, minimisation
- Monoïde syntaxique
- Expressions rationnelles
- Grammaires, hiérarchie de Chomsky
- Logique monadique du second ordre
- Automates à pile et grammaires algébriques, lemme d'itération
- Calculs d'accessibilité, automates à pile réguliers
- Langages déterministes, propriétés de clôture
- Analyse lexicale et syntaxique (SLR, LR, LALR)
- Problèmes décidables et indécidables
- Automates à pile visible
Références :
- Olivier Carton. Langages formels, calculabilité et complexité. Vuibert, 2008
- John E. Hopcroft, Rajeev Motwani et Jeffrey D. Ullman. Introduction to Automata Theory, Languages, and Computation. 3e éd. Pearson, 2006.
- Dexter C. Kozen. Automata and Computability. Springer, 1997.
- Jacques Sakarovitch. Éléments de théorie des automates. Vuibert, 2003.