gpt4 book ai didi

common-lisp - CLISP、ECL 和 SBCL 之间的主要区别是什么?

转载 作者:行者123 更新时间:2023-12-03 12:12:08 39 4
gpt4 key购买 nike

我想用 ACT-R 做一些模拟我需要一个 Common Lisp执行。我有三个 Common Lisp可用的实现:(1) CLISP [1] , (2) ECL [1] , 和 (3) SBCL [1] .正如您可能从链接中收集到的那样,我在维基百科上阅读了有关这三个链接的一些内容。但我想听听一些有经验的用户的意见。更具体地说,我想知道:
(i)这三种实现之间的主要区别是什么(例如:它们最擅长什么?它们中的任何一个是否仅用于特定目的,因此可能不适合特定任务?)?
(ii)基于我将使用 ACT-R 的事实,是否有明显的选择?还是基于一般原因?

因为这可以解释为一个主观问题
我查了 What topics can I ask about hereWhat types of questions should I avoid asking?如果我没看错,它不应该是禁果。

最佳答案

我编写了一个中等大小的应用程序,并在 SBCL、CCL、ECL、CLISP、ABCL 和 LispWorks 中运行它。对于我的应用程序,SBCL 无疑是最快的,而且它有一个非常好的调试器。对某些警告有点严格——您最终可能会以稍微更规范的方式进行编码,或者关闭一个或多个警告。

我同意 Sylwester 的观点:如果可能,请编写标准,然后您可以在任何实现中运行您的代码。您将通过测试找出最适合您的项目的方法。

由于 SBCL 编译如此积极,调试器中的堆栈跟踪有时会比我想要的信息量少。这可能可以通过参数控制,但我只是在其他实现之一中重新运行相同的代码。例如,我记得,ABCL 有一个信息丰富的堆栈跟踪。 (它也很慢,但如果你想要真正的 Common Lisp 和 Java 互操作性,这是唯一的选择。)

Common Lisp 的好处之一是有多少高质量的实现,其中大部分是免费的。

用于非正式用途——例如学习 Common Lisp,CCL 或 CLISP 可能是比 SBCL 更好的选择。

我从未尝试过使用 ECL 编译为 C。对于某些应用程序,它可能会在速度上击败 SBCL。我不知道。

CLISP 和 LispWorks 不会处理任意长的参数列表(除非在过去几年中已修复,但我对此表示怀疑)。结果证明这是我的应用程序的问题,但对于大多数代码来说不是问题。

ACT-R 不是出自卡内基梅隆吗?它的作者使用什么?我的猜测是 CMUCL 或 SBCL,它是从 CMUCL 派生出来的。 (我只是简单地尝试了 CMUCL。它的解释器很慢,但我认为编译后的代码非常快。但是我认为大多数人选择 SBCL 而不是 CMUCL。)

(这个问题可能属于 Programmers.SE。)

关于common-lisp - CLISP、ECL 和 SBCL 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25092317/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com