Common Lisp的最新标准

时间:2015-11-21 20:28:26

标签: common-lisp standards

有谁能告诉我标准化Common Lisp的最新文件是什么(请注意各种实现之后)?我问,因为我可以在网上找到很多关于CL的书籍来自于90年代,所以我想知道它们是否是最新的。我也来自一个方案背景,在RnRS系列中进行标准化。对于CL,我只知道ANSI X3.226:1994标准(X3J13);这是吗?

EDIT
感谢您的回答,在结束问题之前让我稍微扩展一下:CL中的情况与Scheme中的情况相同,即实现标准的互不兼容的扩展的各种实现,结果是没有单个& #34; CL语言",或者这个社区更统一?

2 个答案:

答案 0 :(得分:7)

Common Lisp

Common Lisp有四个语言阶段:

  1. 1984:CLtL,由 Common Lisp,语言
  2. 一书定义的Common Lisp
  3. 1990 CLtL2,Common Lisp,由Common Lisp,the Language,2nd Edition描述。它描述了ANSI CL标准之前的临时状态,并且不完全兼容。该书以HTML格式提供,请参阅Common Lisp, the Language, 2nd Edition
  4. 1994,ANSI Common Lisp标准,请参阅CL HyperSpec。从上一个草案中可以获得有用的免费PDF,请参阅Common Lisp Standard Draft
  5. 从那时起:稳定的核心,各种扩展,尝试社区标准(CDR
  6. 大多数当前实现提供了具有各种扩展的完整ANSI CL标准。没有提供完整标准的实现:mocl(按设计)和GCL。对于许多扩展,有可移植的抽象层或可移植的库(线程,FFI,CLOS流......)。

    在Common Lisp中,曾经可以找出实现提供的语言方言,但只有ANSI CL在今天才真正重要:

    CL-USER 11 > (let ((dialects '()))
                   (dolist (d '(:ansi-cl :cltl2 :cltl1))
                     (when (member d *features*) (push d dialects)))
                   dialects)
    (:ANSI-CL)
    

    <强>方案

    因此,Common Lisp情况与Scheme略有不同:几乎所有Common Lisp实现都提供了一种大型的公共(!)语言。对于Scheme,至少使用R5RSR6RSR7RS个变体。但是Scheme还有很多扩展和良好的社区语言扩展管理(参见SRFI)。 R7RS large 标准变体有一些工作可以标准化大型语言:https://groups.google.com/forum/#!forum/scheme-reports-wg2

答案 1 :(得分:3)

是。它没有改变。

您可以在网上以“Common Lisp Hyperspec”(CLHS)的名称以超文本形式找到它。

编辑:是的,实现有不同的扩展,彼此独立。但是,对于最重要的一些,有可移植性包装器库使用读取时间条件来在不同的环境中加载正确的代码。示例:bordeaux-threads(线程),osicat(系统调用)。