Cla*_*diu 3 c optimization scheme programming-languages tail-call-optimization
我听说蹦床是实施 TCO 的一种无效方式。DrScheme(PLAI Scheme,技术上)是如何做到的?它是否以“正确”的方式执行(即,生成直接分支到尾调用的汇编代码,而不是通过堆栈和蹦床)?
MzScheme(现为 PLT Scheme)的首席实现者 Matthew Flatt 在 2008 年 6 月告诉我,他们曾一度编译为虚拟机代码,在这种情况下,编写一个执行适当尾调用的 VM 很容易。然而,现在系统已经足够成熟,在 x86 上他们使用简单的 JIT。在任何一种情况下,都没有蹦床——PLT 计划的人知道他们的业务。