首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尾部调用优化是如何在DrScheme中实现的?

尾部调用优化是如何在DrScheme中实现的?
EN

Stack Overflow用户
提问于 2008-12-05 17:12:16
回答 3查看 697关注 0票数 3

我听说弹床是实现TCO的一种低效方式。DrScheme (从技术上讲,是PLAI Scheme )是如何做到的呢?它是否采用了“正确”的方式(即,生成直接分支到尾部调用的汇编代码,而不是通过堆栈和trampolining)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-05 17:15:20

PLT Scheme的实现者在他们的Google group中相当活跃,你可以从编写代码的人那里得到快速的回答。

不过,我不确定他们是否读到了,所以你最好的选择可能是在那里询问。

票数 2
EN

Stack Overflow用户

发布于 2008-12-06 03:28:50

MzScheme (现在的PLT Scheme)的首席实现者Matthew Flatt在2008年6月告诉我,他们曾经编译成虚拟机代码,在这种情况下,很容易编写一个执行适当尾部调用的VM。然而,现在这个系统已经足够成熟了,他们在x86上使用了一个简单的JIT。在任何一种情况下,都没有跳床- PLT计划的人知道他们的业务。

票数 5
EN

Stack Overflow用户

发布于 2008-12-07 20:55:31

在将Scheme代码转换为目标语言X (C、Java等)的实现中使用了Trampolines。这不支持正确的尾部调用。PLT Scheme采用JIT编译,因此不需要使用弹床。有关所使用的具体实现策略,请咨询PLT邮件列表中的问题。

PS:你可以在ReadScheme.org上的各种“编译方案到C”的论文中阅读更多关于跳床的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/344549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档