【发布时间】:2010-10-06 03:07:42
【问题描述】:
JUMP 和 CALL 指令有何不同?它与 GOTO 或过程调用等更高级别的概念有何关系? (我在比较中是否正确?)
这是我的想法:
JUMP 或 GOTO 是将控件转移到另一个位置,并且控件不会自动返回到调用它的位置。
另一方面,CALL 或过程/函数调用返回到调用它的位置。由于它们本质上的这种差异,语言通常使用堆栈,并且堆栈帧被推送以“记住”每个调用过程返回的位置。这种行为也适用于递归过程。然而,在尾递归的情况下,没有必要为 each 调用“推送”一个堆栈帧。
我们将不胜感激您的回答和 cmets。
【问题讨论】:
标签: functional-programming recursion computer-science