Mat*_*att 2 language-agnostic recursion processor
递归调用函数的能力是处理器或编程语言/编译器固有的能力.也许,两者都需要元素来支持递归?
我一直认为,递归调用函数的能力纯粹是在编程语言中实现的,以及它如何布局其运行时堆栈以及何时何地返回.我假设是正确的还是处理器具有允许递归的特定逻辑?
处理器只是跳转到代码告诉它的地方.递归绝对是一种语言功能.
它也是一个编译器函数,只要编译器必须实现该语言.但如果没有,我们会认为它被打破了.
最后,当然操作的负担由处理器承担:它必须在堆栈帧上推送上下文和变量,跳转到例程的入口点,执行指令,返回......你知道,处理器做的事情.
所有现代处理器都能够递归,因为它们具有基于堆栈的函数调用和返回指令.
早期的计算机有一段非常困难的时期.例如,IBM 360布局了代码,以便函数的返回值和局部变量与代码一起.递归调用会破坏先前调用的值.
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |