Un stivă este o structură sau o listă de liste de apeluri funcționale și parametri folosiți în programarea computerului modern și arhitectura procesorului. Similar cu o grămadă de farfurii de la un restaurant tip bufet sau cafenea, elementele dintr-o stivă sunt adăugate sau eliminate din partea superioară a stivei, într-o comandă „ultimul în primul, primul în afară” sau LIFO.
Procesul de adăugare a datelor la o stivă este denumit „apăsare”, în timp ce preluarea datelor dintr-o stivă se numește „pop”. Aceasta se produce în partea de sus a stivei. Un pointer de stivă indică întinderea stivei, reglându-se pe măsură ce elementele sunt împinse sau apăsate la o stivă.
Când se apelează o funcție, adresa instrucțiunii următoare este împinsă pe stivă.
Când funcția iese, adresa este afișată din stivă și execuția continuă la acea adresă.
Există și alte acțiuni care pot fi efectuate pe o stivă în funcție de mediul de programare.
Stiva este cunoscută și sub denumirea de "Last In First Out (LIFO) ".
Exemple: În C și C ++, variabilele declarate local (sau auto) sunt stocate pe stivă.