Stacks are fundamental to recursive expression evaluation in compilers. Each recursive call pushes a new activation record containing local variables and return addresses. The Last-In-First-Out (LIFO) nature of stacks matches the call-return pattern of recursion.