由于地方特性,它简单而快速有效。 您还可以通过仅调整一个指针来管理内存,即有限资源。
我认为这是个好主意。
答案 0 :(得分:1)
据我所知,计算机从一开始就使用了一个调用堆栈。
堆栈本身最初由Alan Turing提出,可追溯到1946年。我相信堆栈首先被用作定义pushdown automatons的理论概念。关于我能找到的调用栈的第一篇文章是由Dijkstra在Numerische Mathematik期刊上撰写的,名为“递归编程”(http://link.springer.com/article/10.1007%2FBF01386232)。
另请注意,调用堆栈主要是因为递归。实际上可能很难知道谁首先真正了解了调用堆栈的想法,因为如果你想支持递归,那么需要堆栈非常直观。请参阅Peter Van Der Linden撰写的Expert C Programming - Deep C Secrets的引用:
除了递归调用之外,不需要堆栈。如果不是 这些,局部变量,参数和的固定空间量 返回地址在编译时是已知的,可以分配 在BSS。 [...]允许递归调用意味着我们必须找到一个 允许多个局部变量实例存在的方法 有一段时间,虽然只会访问最近创建的 - 堆栈的经典规范。
这是第143页的第6章 - 如果你喜欢这种东西,我强烈建议你阅读它。
很容易理解,当人们想要跟踪调用链时,堆栈可能是正确的结构,因为保持的函数调用将以LIFO方式返回。