Gli automi a stati finiti sono dei semplici modelli operativi di calcolo. Modellano il calcolo come una serie di passi discreti da una condizione (stato) alla successiva. Gli FSA hanno memoria del calcolo formata da un insieme finito di stati.
Formalmente, è costituito da:
È possibile usare un FSA per riconoscere le parole di un linguaggio. Se l'automa, leggendo una stringa, partendo da
Possiamo formalizzare l'accettazione di un linguaggio
Di seguito un FSA riconoscitore per un linguaggio
Di seguito un FSA riconoscitore del linguaggio degli identificatori del linguaggio c. Si ha che
Un FSA traduttore da
Formalmente un FSA traduttore è una
Formalizziamo, analogamente a
Di seguito un FSA traduttore che traduce da
Il pumping lemma è la formalizzazione di un comportamento ciclico in un FSA, cioè l'esistenza di un ciclo percorribile
Il pumping lemma afferma che se
Dal pumping lemma consegue che
Si può dire, con la condizione
Inoltre si può dire, se
Un FSA non può riconoscere un linguaggio
Per dimostrarlo, sia
La famiglia di linguaggi riconoscibili con un FSA è detta famiglia dei linguaggi regolari
Una famiglia di linguaggi è un insieme i cui elementi sono linguaggi
Dati due FSA riconoscitori:
È possibile ottenere il riconoscitore del linguaggio intersezione facendoli funzionare insieme, con la condizione che di effettuare una transizione solo se c'è in entrambi:
Formalmente, dati due FSA
Inoltre si ha che:
Dati due FSA:
Si ha nel FSA intersezione che lo stato in rosso non è raggiungibile dallo stato iniziale e quindi può essere eliminato, e che con la costruzione a punto fisso a partire da
Formalmente, dati due automi
In alternativa è possibile applicare la legge di De Morgan:
Si ha che in ogni FSA esiste uno stato non accettante implicito, detto stato di errore. Aggiunto quello è possibile scambiare gli stati finali