The execution stack, also known as the call stack, is a data structure used by programming languages to keep track of active subroutines or function calls within a program, ensuring that each function's local variables and execution context are properly managed. It operates on a Last-In, First-Out (LIFO) basis, meaning the most recently invoked function is the first to be completed and removed from the stack.