Ein Stack ist eine Array- oder Listenstruktur von Funktionsaufrufen und Parametern, die in der modernen Computerprogrammierung und CPU-Architektur verwendet werden. Ähnlich wie bei einem Tellerstapel in einem Buffetrestaurant oder in einer Cafeteria werden Elemente in einem Stapel in der Reihenfolge „last in first, first out“ oder LIFO hinzugefügt oder von der Oberseite des Stapels entfernt.
Der Vorgang des Hinzufügens von Daten zu einem Stapel wird als "Push" bezeichnet, während das Abrufen von Daten von einem Stapel als "Pop" bezeichnet wird. Dies geschieht am oberen Rand des Stapels. Ein Stapelzeiger zeigt die Ausdehnung des Stapels an und passt sich an, wenn Elemente auf einen Stapel verschoben oder dort abgelegt werden.
Wenn eine Funktion aufgerufen wird, wird die Adresse des nächsten Befehls auf den Stapel geschrieben.
Wenn die Funktion beendet wird, wird die Adresse aus dem Stapel entfernt und die Ausführung an dieser Adresse fortgesetzt.
Es gibt andere Aktionen, die je nach Programmierumgebung auf einem Stapel ausgeführt werden können.
Der Stapel ist auch bekannt als "Last In First Out (LIFO) ".
Beispiele: In C und C ++ werden lokal (oder automatisch) deklarierte Variablen auf dem Stapel gespeichert.