Principio fondamentale:
le macchine a stati finiti sono spesso utilizzate per risolvere determinati tipi di problemi di controllo, in cui il flusso di controllo può essere rappresentato come un movimento attraverso una serie di stati diversi. Esistono diverse definizioni e descrizioni pratiche di una macchina a stati finiti; a livello teorico, è simile a un automa che risponde a uno stimolo specifico modificando il proprio stato. Per dare un'espressione specifica e comune, può essere considerata, ad esempio, come un automa che reagisce alla stringa di input passando attraverso una serie di stati. Se viene raggiunto lo stato desiderato, la stringa di input diventa equivalente all'espressione comune.
Nell'ambito del software di controllo, è comune assumere la natura finita e deterministica della macchina a stati finiti come base del suo modello computazionale. Ciò significa fondamentalmente che il numero di stati o combinazioni di stati possibili è finito e che la macchina a stati finiti può avere un solo stato in un dato momento. Vedremo in seguito che la regola di un solo stato alla volta può essere attenuata, ma l'aspetto rilevante è che lo stato del flusso è una proprietà deterministica.