我听说蹦床是实现 TCO 的一种低效方式。 DrScheme(PLAI Scheme,技术上来说)是怎么做到的?它是否以“正确”的方式执行(即,生成直接分支到尾部调用的汇编代码,而不是通过堆栈和蹦床)?
最佳答案
MzScheme(现为 PLT Scheme)的主要实现者 Matthew Flatt 在 2008 年 6 月告诉我,他们曾一度编译成虚拟机代码,在这种情况下,很容易编写一个执行适当尾调用的 VM。然而,现在系统已经足够成熟,可以在 x86 上使用简单的 JIT。在任何一种情况下,都没有蹦床——PLT 计划的人知道他们的业务。
关于c - Tail Call Optimization在DrScheme中是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/344549/