Cos'è la programmazione basata sugli automi?

La programmazione basata sugli automi è un paradigma di programmazione per computer che tratta sezioni del programma come automi finiti. Ogni automa può compiere un "passo" alla volta e l'esecuzione del programma viene suddivisa in singoli passaggi. I passaggi comunicano tra loro modificando il valore di una variabile che rappresenta "lo stato" e il flusso di controllo del programma è determinato dal valore di tale variabile.

La variabile "stato" può essere un semplice tipo di dati enum, ma è possibile utilizzare strutture dati più complesse. Una tecnica comune consiste nel creare una tabella di transizione di stato, una matrice bidimensionale comprendente righe che rappresentano ogni stato possibile e colonne che rappresentano un parametro di input. Il valore della tabella in cui la riga e la colonna si incontrano è lo stato successivo a cui deve passare la macchina se vengono soddisfatte entrambe le condizioni.

Macchina a stati finiti, input, paradigma, termini di programmazione