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

Common lisp CLISP、ECL和SBCL之间的主要区别是什么?,common-lisp,sbcl,clisp,ecl,Common Lisp,Sbcl,Clisp,Ecl,我想用ACT-R做一些模拟,我需要一个commonlisp实现。我有三种可用的通用Lisp实现:(1)CLISP,(2)ECL,和(3)SBCL。正如你可能从链接中收集到的,我在维基百科上读到了关于这三个方面的一些信息。但是我想听听一些有经验的用户的意见。更具体地说,我想知道: (i)这三种实现方式之间的主要区别是什么(例如:它们最擅长什么?它们中是否有一种仅用于特定目的,因此可能不适合特定任务?) (ii)基于我将使用ACT-R或基于一般原因,是否有明显的选择 因为这可以解释为一个主观问题

我想用
ACT-R
做一些模拟,我需要一个
commonlisp
实现。我有三种可用的
通用Lisp
实现:
(1)CLISP
(2)ECL
,和
(3)SBCL
。正如你可能从链接中收集到的,我在维基百科上读到了关于这三个方面的一些信息。但是我想听听一些有经验的用户的意见。更具体地说,我想知道:

(i)
这三种实现方式之间的主要区别是什么(例如:它们最擅长什么?它们中是否有一种仅用于特定目的,因此可能不适合特定任务?)

(ii)
基于我将使用
ACT-R
或基于一般原因,是否有明显的选择


因为这可以解释为一个主观问题
我检查了一下,如果我读得正确,它就不应该被视为禁果。

一般来说,
SBCL
是开源Lisp中的默认选择。它可靠、支持良好、生成快速代码,并提供了许多超出标准要求的优点(并发原语、评测等)。另一个具有类似属性的实现是
CCL

CLISP
如果您不是工程师,或者希望向非工程师快速显示Lisp,则更适合。这是一个非常基本的实现,但是运行起来很快,而且用户友好。Lisp计算器:)


ECL
的主要卖点是它是可嵌入的,也就是说,它很容易在一些C应用程序(如web服务器等)中工作。对于想要探索Lisp和外部世界边界解决方案的极客来说,它是一个不错的选择。如果您对这种用例不感兴趣,我不建议您尝试,尤其是因为目前它还没有得到积极的支持。

它们的名称、它们的bug和它们的非标准添加(使用它们会将您锁定)

我在开发期间使用CLISP作为REPL和测试,通常使用SBCL进行生产。ECL我从来没用过


我建议您使用多个实现来测试代码

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

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

由于SBCL编译非常繁重,调试器中的stacktrace有时信息量比我希望的要少。这可能可以通过参数来控制,但我只是在另一个实现中重新运行相同的代码。例如,我记得ABCL有一个信息性的堆栈跟踪。(它也非常慢,但如果您想要真正的通用Lisp和Java互操作性,它是唯一的选择。)

CommonLisp的一个优点是有很多高质量的实现,其中大部分是免费的

用于非正式用途——例如学习通用Lisp,CCL或CLISP可能比SBCL更好

我从未尝试过用ECL编译成C。在某些应用中,它可能在速度上超过SBCL。我不知道

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

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


(这个问题可能属于程序员。SE。)

Stackoverflow最适合解决实际编程问题。对于一般的工具比较来说不是很好。如果您想知道哪些LISP最适合用于ACT-R,最好阅读ACT-R文档和/或向ACT-R的支持人员寻求帮助。通过一些研究,您可以找到答案。维基百科不相关。好的。我之所以决定问这个问题,是因为“[…]但是如果你的问题通常涉及程序员常用的[…]软件工具;并且是软件开发中特有的一个实用的、可回答的问题……那么你就来问你的问题了!”我认为这是一个实际的、可以回答的问题,但你可能是对的。@lord.garbage虽然这是一个有趣的问题,但我同意雷纳的观点,那可能是离题了。它是关于编程工具的,因此可能有助于在聊天中进行很好的讨论,但它可能太广泛了,如果你问“他们最擅长什么”之类的问题,你很容易进入“主要基于意见”的领域。在软件推荐测试版网站comp.lang.lisp或#lisp或lispforum.@lord.garbage上可能会更好,但是,我要提到的是,我几年前使用过ACT-R,我记得,我们在LispWorks和MCL下运行时没有遇到太多问题(MCL现在已经失效,但ACT-R可以在CLOSE下正常工作)@JoshuaTaylor:这样的问题也可能会被问到。但ACL-R特定的问题最好在ACT-R邮件列表中提出:不幸的是,你们大多数人的写作都是主观的,并且是开放的讨论。从一些ACT-R用户的角度来看,这些都没有实际的帮助,我们不知道他们的需求。因此,除了问这个问题的人声称读过的维基百科文章之外,上面并没有添加太多的信息。@RainerJoswig在某种程度上你是对的,尽管这里列出了一些客观事实,如可用性/缺乏支持,以及