Langages réguliers et automates finis
Cours · informatique (MP2I/MPI), chapitre 29 · MP2I et MPI · le début du chapitre, la suite sur Adloun
29.1 Deux façons de décrire un même ensemble de mots
Le programme introduit les expressions régulières « comme formalisme dénotationnel pour spécifier un motif », et les automates « comme un formalisme opérationnel efficace pour la recherche de motifs ». Ces deux mots portent tout le chapitre :
| Expression régulière | Automate | |
|---|---|---|
| Ce qu'elle dit | quoi : à quoi ressemble un mot | comment : on le lit lettre à lettre |
| Nature | déclarative | opérationnelle |
| Ce qu'on en fait | on l'écrit | on l'exécute |
Et le théorème de Kleene dira que les deux décrivent exactement les mêmes ensembles de mots. C'est ce qui permet d'écrire un motif de façon commode et de le chercher de façon efficace.
29.2 Langages
Un alphabet est un ensemble fini de lettres. Un mot est une suite finie de lettres ; le mot vide se note . L'ensemble de tous les mots est , et un langage est une partie de .
Le vocabulaire préfixe / suffixe / facteur / sous-mot est celui du chapitre chap:textes.
Pour deux langages et :
- union : ;
- concaténation : ;
- étoile de Kleene : , les concaténations d'un nombre quelconque, éventuellement nul, de mots de .
L'ensemble des langages réguliers sur est le plus petit ensemble tel que :
C'est encore un ensemble inductif au sens du chapitre chap:induction : les preuves sur les langages réguliers se font par induction sur cette construction.
Une expression régulière est une écriture qui dénote un langage régulier. Le programme fixe les notations : pour le langage vide, pour le langage réduit au mot vide, pour l'union, la juxtaposition pour la concaténation, l'étoile pour Kleene.
| Expression | Langage dénoté |
|---|---|
le seul mot ab | |
les deux mots a et b | |
, a, aa, aaa, … | |
tous les mots se terminant par a | |
tous les mots commençant par a |
C'est la distinction syntaxe / sémantique, pour la troisième fois du livre. et sont deux expressions différentes qui dénotent le même langage — exactement comme et sont deux formules distinctes et équivalentes.