Automa a pila
Un automa a pila o Push Down Automa (PDA) è una macchina astratta adatta a riconoscere ed accettare quei linguaggi che nelle grammatiche formali sono detti liberi da contesto (o di tipo 2, o non contestuali, o context-free). Il nome di tale macchina deriva dal fatto che come memoria di lavoro utilizza una struttura dati detta stack.
Indice |
Definizione Formale [modifica]
Automa a pila non deterministico [modifica]
L'automa a pila non deterministico è un sistema formale composto da
, dove:
è l'alfabeto di input;
è l'alfabeto dei simboli della pila;
è il carattere iniziale della pila;
è un insieme finito e non vuoto di stati;
è lo stato iniziale;
è l'insieme degli stati finali;
è la funzione parziale di transizione (
è la stringa vuota).
Automa a pila deterministico [modifica]
Un automa a pila deterministico è un automa a pila
tale che per ogni carattere a di
, per ogni stato
di
e per ogni stato
di
si ha 
Configurazione di un automa a pila [modifica]
Dato un automa a pila
si dice configurazione di
una tripla
, dove
appartiene a
,
a
e
a
.
Accettazione degli automi a pila [modifica]
Un automa a pila ha due diversi modi di accettare un linguaggio:
Accettazione per pila vuota [modifica]
Dato un automa a pila
, una sua configurazione è di accettazione se
. In base a tale definizione una stringa
è accettata da un automa a pila se e solo se al termine dell'elaborazione di
la pila è vuota.
Accettazione per stato finale [modifica]
Dato un automa a pila
, una sua configurazione
è di accettazione se
e
appartiene a
. Secondo questa definizione una stringa
è accettata da
se e solo se al termine dell'elaborazione di
stringa l'automa si trova in uno stato finale.
In generale, dato un automa a pila
, il linguaggio riconosciuto da
per pila vuota è diverso dal linguaggio riconosciuto da
per stato finale. È importante notare, tuttavia, che la classe dei linguaggi riconosciuti dagli automi a pila non cambia sia che si scelga l'accettazione per pila vuota che per stato finale. Vale, cioè che
è un linguaggio accettato per pila vuota da un automa a pila
se e solo se
è un linguaggio accettato per stato finale da un automa a pila
. In particolare, la classe dei linguaggi accettati dagli automi a pila coincide con quella dei linguaggi liberi da contesto.
| Teoria degli automi: linguaggi formali e grammatiche formali | |||
|---|---|---|---|
| Gerarchia di Chomsky | Grammatica | Linguaggio | Automa minimo |
| Tipo-0 | (illimitato) | Ricorsivamente enumerabile | Macchina di Turing |
| (illimitato) | Ricorsivo | Decider | |
| Tipo-1 | Dipendente dal contesto | Dipendente dal contesto | Automa lineare |
| Tipo-2 | Libera dal contesto | Libero dal contesto | Automa a pila ND |
| Tipo-3 | Regolare | Regolare | A stati finiti |
| Ciascuna categoria di linguaggio o grammatica è un sottoinsieme del proprio sovrainsieme di categoria direttamente sottostante. | |||
|
|
è il carattere iniziale della pila;
è lo stato iniziale;
è l'insieme degli stati finali;
è la funzione parziale di transizione (
è la stringa vuota).