abcl相关内容

为什么不能在基于 JVM 的 Lisps 中优化尾调用?

主要问题:我认为尾调用优化 (TCO) 最重要的应用是将递归调用转换为循环(在递归调用具有特定形式的情况下).更准确地说,当翻译成机器语言时,这通常是翻译成某种系列的跳跃.一些编译为本机代码(例如 SBCL)的 Common Lisp 和 Scheme 编译器可以识别尾递归代码并执行此转换.Clojure 和ABCL 等基于JVM 的Lisps 很难做到这一点.JVM 是什么机器阻止或使这变得困难 ..
发布时间:2022-01-02 22:38:07 其他开发

为什么不能在基于JVM的Lisps中优化尾调用?

主要问题:我认为尾调用优化(TCO)最重要的应用是将递归调用转换为循环(在递归调用具有某种形式的情况下)。更确切地说,当被翻译成机器语言时,这通常将被翻译成某种系列的跳跃。一些编译为本地代码(例如SBCL)的Common Lisp和Scheme编译器可以识别尾递归代码并执行此翻译。基于JVM的Lisps如Clojure和ABCL有麻烦这样做。它是什么关于JVM作为一个机器,防止或使这个困难?我不明 ..
发布时间:2016-11-27 16:40:20 其他开发语言