c - Tail Call Optimization在DrScheme中是如何实现的?

标签 c optimization programming-languages scheme tail-call-optimization

我听说蹦床是实现 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/

相关文章:

javascript - 为什么存在错误 Uncaught ReferenceError : $ is not defined if add async?

compiler-construction - 解释器在解释一种语言时应该如何处理 "work"?

mysql - 使用 pcap 循环和 mysql con 作为我的参数时出错

c - 为什么 C 中不允许直接二进制输入/输出?

c - 简单递归帮助

performance - GHC 中的跨模块优化

c - 如何在 ANSI C 中正确锁定文件

c - 使用指针会取消关联变量的 "register"属性吗?

java - 编写 Web 服务的推荐语言

按需调用和标准 C 输出?