执行栈是计算机科学中存储有关正在运行的子程序的消息的栈。有时称控制栈(control stack)、运行时栈(run-time stack)和调用栈,但栈中不一定仅存储子程序消息。几乎所有计算机程序都依赖于执行栈,然而高级语言一般将调用栈的细节隐藏至后台。执行栈是计算机科学中存储有关正在运行的子程序的消息的栈。经常被用于存放子程序的返回地址。在调用任何子程序时,主程序都必须暂存子程序运行完毕后应该返回到的地址。因此,如果被调用的子程序还要调用其他的子程序,其自身的返回地址就必须存入执行栈,在其自身运行完毕后再行取回。在递归程序中,每一层次递归都必须在执行栈上增加一条地址,因此如果程序出现无限递归(或仅仅是过多的递归层次),执行栈就会产生栈溢出。