Stack

Noun · Slang & Abbreviations

Definitions

  1. Stack is one of the most fundamental data structures in computer science, operating on a last-in, first-out (LIFO) principle where the most recently added element is the first one removed. The two primary operations are push (add to top) and pop (remove from top). Stacks are used extensively in programming: function call stacks track active subroutines and their local variables, expression evaluation uses stacks for parsing parentheses and operator precedence, and undo functionality in editors relies on stacking previous states. The term also appears in the phrase tech stack, referring to the combination of technologies used in a project (for example, the LAMP stack of Linux, Apache, MySQL, and PHP). Stack overflow, a condition where the call stack exceeds its allocated memory, gave its name to the popular programming Q&A site. Understanding stacks is essential for recursion, compiler design, and algorithm implementation.

    In plain English: The set of tools and technologies used to build an application — your programming language, database, framework, and other choices bundled together.

Etymology

1946
Alan Turing describes a 'bury and unbury' mechanism in his design for the ACE computer, prefiguring the stack concept.
1957
Friedrich Bauer and Klaus Samelson patent the stack as a data structure for expression evaluation.
1970s
'The stack' becomes shorthand for the call stack in programming. Stack-based buffer overflows emerge as a vulnerability class.
2000s
'Tech stack' and 'full stack' extend the metaphor to describe entire toolchains and developer skill sets.

Origin Story

The Data Structure That Runs on Last In, First Out

A stack is a linear data structure that follows the Last In, First Out (LIFO) principle: the last item added is the first one removed, like a stack of plates in a cafeteria. The concept was first described by Alan Turing in 1946, in his design for the Automatic Computing Engine (ACE), where he proposed using a 'bury' and 'unbury' mechanism for subroutine return addresses. The German computer scientist Friedrich Bauer and the Australian Charles Hamblin independently developed stack concepts in the late 1950s. Bauer filed a patent for the stack principle in 1957. The Burroughs B5000 mainframe (1961) was the first commercial computer to use a hardware stack as a core architectural feature, enabling efficient function calls and expression evaluation. The call stack, which tracks active subroutine calls and local variables, became a fundamental feature of virtually every processor architecture and programming language runtime. Beyond the call stack, the stack data structure appears everywhere: undo/redo systems, browser history navigation, expression parsing, and depth-first graph traversal all rely on stack behavior. The term also expanded metaphorically: 'tech stack' refers to the layered set of technologies used to build an application.

Coined by: Alan Turing (concept), Friedrich Bauer (formalization)

Context: Computer architecture, 1946-1957

Fun fact: Friedrich Bauer received the IEEE Computer Pioneer Award in 1988 for his work on the stack principle. His 1957 patent is one of the earliest software-concept patents ever filed.

Related Terms