Een stapel is een array of lijststructuur van functie-aanroepen en parameters die worden gebruikt in moderne computerprogrammering en CPU-architectuur. Vergelijkbaar met een stapel borden in een buffetrestaurant of cafetaria, worden elementen in een stapel toegevoegd of verwijderd van de bovenkant van de stapel, in een "last in first, first out" of LIFO-volgorde.
Het proces van het toevoegen van gegevens aan een stapel wordt een 'push' genoemd, terwijl het ophalen van gegevens uit een stapel een 'pop' wordt genoemd. Dit gebeurt bovenaan de stapel. Een stapelaanwijzer geeft de omvang van de stapel aan en wordt aangepast wanneer elementen naar een stapel worden geduwd of naar een stapel worden gepusht.
Wanneer een functie wordt aangeroepen, wordt het adres van de volgende instructie op de stapel geplaatst.
Wanneer de functie wordt afgesloten, wordt het adres van de stapel verwijderd en wordt de uitvoering op dat adres voortgezet.
Er zijn andere acties die op een stapel kunnen worden uitgevoerd, afhankelijk van de programmeeromgeving.
De stapel is ook bekend als "Last In First Out (LIFO) ".
Voorbeelden: In C en C ++ worden lokaal (of automatisch) gedeclareerde variabelen op de stapel opgeslagen.