Art*_*erg 4 ubuntu clisp common-lisp gnu-common-lisp
在Ubuntu存储库中有两个Lisp实现:GCL和CLISP.它们之间有根本区别吗?哪一个更接近行业标准?
Common Lisp实际上是在ANSI标准中定义的.它有很多实现,包括商业和FOSS.这些实现通常符合标准,并为标准中未定义的内容(如线程,FFI和unicode)提供了一些自己的扩展.
您应该看到http://www.cliki.net/Common%20Lisp%20implementation以进行实现比较.您应该使用哪一个取决于您的需求和偏好.首先,您可以选择一个.语言本身无论如何都是一样的,只要您不使用任何特定于实现的扩展,您可以根据需要轻松切换到另一个.
我个人更喜欢Linux上的SBCL.它具有良好的性能,包括线程和所有的扩展.主要的缺点是程序将非常大(磁盘空间和内存使用).如果您正在构建服务器端应用程序,或者无论如何都要大于实现,那么这并不重要,但对于较小的客户端工具,您可能需要查看CLISP.我没有使用GCL,所以我不能说太多.
只是为了澄清:Lisp命名了编程语言家族,其中包括(机器人不限于):
gcl
、abcl
、和提供标准clisp
的不同(FOSS)实现(具有不同的完整性级别)。ecl
sbcl
chicken
主要是 R5RS 和 R6RS)、gambit
(R4RS)、racket
(Scheme 和 R6RS 的方言)、mit-scheme
(R4RS)如果您想开始使用 Common Lisp,可能最好的选择是使用SBCL实现和Emacs+SLIME作为 IDE。
GCL(如 ECL)编译为 C。ECL 主要用于将 Common Lisp 嵌入到 C 程序中。GCL 曾被用来(有些项目仍在使用)来开发像 Maxima 和 Axiom 这样的代数系统,但最近它似乎被 SBCL 取代了(至少在 Maxima 的情况下)。
CLISP 编译成 VM 代码,使其可移植,但速度较慢。该项目已经有一段时间没有更新了,并且其中的 CFFI 存在一些问题,使其与一些现代库不兼容。
为了完整起见:ABCL 是 JVM 的 Common Lisp 实现,是极其狭窄的利基实现(恕我直言,主要是由于 JVM 的缺陷)。
归档时间: |
|
查看次数: |
1161 次 |
最近记录: |