Pila (informatica)

In informatica, il termine stack o pila viene usato in diversi contesti per riferirsi a strutture dati le cui modalità d'accesso seguono una politica LIFO (Last In First Out), ovvero tale per cui i dati vengono estratti (letti) in ordine rigorosamente inverso rispetto a quello in cui sono stati inseriti (scritti). Il nome di questa struttura dati è infatti la stessa parola inglese usata, per esempio, per indicare una "pila di piatti" o una "pila di giornali", e sottende per l'appunto l'idea che quando si pone un piatto nella pila lo si metta sempre in cima, e che quando si preleva un piatto si prelevi sempre, analogamente, quello in cima (da cui la dinamica LIFO).
Il termine viene usato in informatica in modo più specifico in diversi contesti:
- la struttura dati a stack è un tipo di struttura dati che un programma può implementare e utilizzare per il proprio funzionamento;
- lo stack è un elemento dell'architettura dei moderni processori, e fornisce il supporto fondamentale per l'implementazione del concetto di subroutine;
- le macchine virtuali di quasi tutti i linguaggi di programmazione ad alto livello usano uno stack dei record di attivazione per implementare il concetto di subroutine (generalmente, ma non necessariamente, basandosi sullo stack del processore);
- la memoria degli automi a pila dell'informatica teorica è uno stack.