Principe de base :
les machines à états finis sont souvent utilisées pour résoudre certains types de problèmes de contrôle, où le flux de contrôle peut être représenté comme un passage par un ensemble d'états différents. Il existe plusieurs définitions et descriptions pratiques d'une machine à états finis ; théoriquement, elle s'apparente à un automate qui réagit à un stimulus spécifique en changeant d'état. Pour donner une expression courante, on peut la considérer, par exemple, comme un automate qui réagit à une chaîne de caractères en entrée en parcourant un ensemble d'états. Si l'état souhaité est atteint, la chaîne de caractères en entrée correspond à cette expression courante.
En programmation de contrôle, on considère généralement la nature finie et déterministe de la machine à états finis comme base de son modèle de calcul. Cela signifie fondamentalement que le nombre d'états ou de combinaisons d'états possibles est fini, et que la machine à états finis ne peut avoir qu'un seul état à la fois. Nous verrons plus loin que la règle d'un seul état à la fois peut être assouplie, mais l'aspect essentiel est que l'état du flux est une propriété déterministe.