Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Common lisp 公共Lisp的最新标准_Common Lisp_Standards - Fatal编程技术网

Common lisp 公共Lisp的最新标准

Common lisp 公共Lisp的最新标准,common-lisp,standards,Common Lisp,Standards,有谁能告诉我最新的标准化公共Lisp的文档是什么(后面应该有各种实现)?我这样问是因为我能在网上找到很多关于CL的书都是90年代的,所以我想知道它们是否是最新的。我还来自一个计划背景,在这个背景中,标准化是在RnRS系列中完成的。对于CL,我只知道ANSI X3.226:1994标准(X3J13);是这个吗 编辑 谢谢您的回答,在结束问题之前,让我稍微扩展一下:CL中的情况是否与Scheme中的情况相同,即实施互不兼容的标准扩展的各种实现,其结果是没有单一的“CL语言”,或者这个社区更统一?是的

有谁能告诉我最新的标准化公共Lisp的文档是什么(后面应该有各种实现)?我这样问是因为我能在网上找到很多关于CL的书都是90年代的,所以我想知道它们是否是最新的。我还来自一个计划背景,在这个背景中,标准化是在RnRS系列中完成的。对于CL,我只知道ANSI X3.226:1994标准(X3J13);是这个吗

编辑

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

是的。它没有改变

您可以在“Common Lisp Hyperspec”(CLHS)在线下的超文本形式中找到它


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

通用Lisp

有四个语言阶段:

  • 1984:,公共Lisp由《公共Lisp语言》一书定义
  • 1990年CLtL2,《公共Lisp语言》第二版中描述的公共Lisp。它描述了ANSI CL标准之前的过渡状态,不完全兼容。本书以HTML格式提供,请参阅
  • 1994年,ANSI通用Lisp标准,见。一个有用的免费PDF已经从最后的草稿,请参阅
  • 从那时起:稳定的核心、各种扩展、对社区标准的尝试()
  • 大多数当前的实现都提供了完整的ANSI CL标准以及各种扩展。未提供完整标准的实现:mocl(按设计)和GCL。对于许多扩展,都有可移植抽象层或可移植库(线程、FFI、CLOS流等)

    在Common Lisp中,once可以找出一个实现提供的语言方言,但现在只有ANSI CL真正重要:

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


    因此,公共Lisp的情况与Scheme有点不同:几乎所有公共Lisp实现都提供了一种大型公共(!)语言。对于Scheme,至少有,和正在使用的变体。但Scheme也有很多扩展,并具有良好的社区语言扩展管理(请参阅)。在R7RS大型标准变体上做了一些工作,这将标准化大型语言:

    这是Common Lisp的标准。有意见吗?这不是答案吗?因为公共Lisp已经很大了,所以有更多的公共(!)基础。例如,大多数代码使用CLO,而不是自行开发的对象系统。对于一些不兼容的扩展(线程、FFI等),存在可移植性层。有些扩展是以可移植的方式编写的。@RainerJoswig:正如Mars上面所说的,这些收集到答案中的评论可以结束我的问题。