CMU Common Lisp

CMUCL
原作者卡内基·梅隆大学
首次发布1980年,​44年前​(1980
当前版本
  • 21e (2023年5月15日)[1]
編輯維基數據鏈接
源代码库
  • gitlab.common-lisp.net/cmucl/cmucl
編輯維基數據鏈接
操作系统遵守POSIX的OS
平台跨平台
语言Common Lisp
类型编译器运行时系统
许可协议公有领域
网站www.cons.org/cmucl/

CMU Common LispCMUCL),是自由的Common Lisp实现,最初在卡内基·梅隆大学开发。

CMUCL运行在大多数类Unix平台上,包括Linux和BSD;也有试验性的Windows移植。Steel Bank Common Lisp派生自CMUCL。Scieneer Common Lisp是CMUCL的商业衍生品。

历史

它的最早实现先于Common Lisp,派生自出现在大约1980年的Spice Lisp英语Spice Lisp。在1985年,Rob MacLachlan开始重写编译器,它后来成为“Python”编译器,并且CMUCL被移植到Unix工作站,比如IBM PC RT英语IBM PC RTMIPSSPARC。早期的CMUCL发行不支持Intelx86架构,由于它缺乏寄存器。CMUCL严格的分离有类型标记的类型和中间数据类型,而垃圾回收器依赖于,已知一半的CPU寄存器只持有有标记的类型,而另一半只持有无标记的。它没有为“Python”后端留下足够的寄存器。

在CMU取消了这个项目(将某些CMUCL编译器基础用于了Dylan实现)之后,维护由一组志愿者接管。在1996年他们在自己的下部构造上制作了正规发行。

大约同时完成了到Intel的x86架构的移植,最初运行在FreeBSD上,后来运行在Linux上。缺乏寄存器的问题,通过采用新的保守垃圾回收器解决了。这个新垃圾回收器,接受在寄存器中的任何类型的任何值,并把可以是指针的任何东西当作指针处理,用途是不回收或移动它的目标。

编译器和其他代码执行单元

  • CMUCL的特征是主要用于REPL的一个解释器,但是它可以用来快速装载不需要编译的Lisp文件。
  • 解释(从编译器发出的)紧致字节码的一个机器。这在现在很少使用了,但是在早期CMUCL发行中很流行,因为在互联网下载带宽很低的时代,这可以大幅缩减映像的大小。
  • 叫做“Python”(不要混淆于Python编程语言)的本机代码编译器。如果Common Lisp源代码具有适当的声明,并且在组建时考虑到了速度,“Python”编译器生成的代码,相比于用C++编译的代码没有更多的开销。一些低效的东西比如函数调用接口,和缺乏用户定义数据类型的无指针数组,是Common Lisp标准主导造成的,仍然需要解决(比如通过内联更多和使用宏来建造,看似用户定义结构的构造,而实际上访问在预先分配的特殊数组中的字段)。“Python”编译器的特征是有强力的类型推论,通过要么自动推论出类型,要么对错过的优化机会的提示,帮助编程者书写无开销的代码。

特征

  • 分代垃圾回收和在x86移植上的多处理能力。
  • 外界函数接口英语foreign function interface,允许同C代码和系统库进行交互,包括在多数平台上的共享库,和对Unix系统调用的直接访问。
  • 支持进程间通信远程过程调用
  • CLOS的一个实现,Common Lisp对象系统包括了多方法和元对象协议。
  • 图形的源代码级别调试器,使用了Motif接口,和一个代码剖析器
  • X11窗口系统的接口(CLX英语CLX (Common Lisp)),和一个复杂的图形组件库(Garnet)。
  • 编程者可扩展的输入和输出串流。
  • Hemlock英语Hemlock (text editor),用Common Lisp实现的一个类Emacs的编辑器。

引用

  1. ^ https://gitlab.common-lisp.net/cmucl/cmucl/-/releases/21e.
  2. ^ https://gitlab.common-lisp.net/cmucl/cmucl/wikis/home

参閱

外部链接

特征
 
对象系统
  • Common Lisp对象系统(CLOS)
  • CommonLoops英语CommonLoops
  • Flavors英语Flavors (programming language)
实现英语Programming language implementation
Common
Lisp
  • Allegro Common Lisp英语Allegro Common Lisp
  • Armed Bear Common Lisp英语Armed Bear Common Lisp(ABCL)
  • CLISP
  • Clozure CL
  • CMU Common Lisp(CMUCL)
  • Corman Common Lisp英语Corman Common Lisp
  • Embeddable Common Lisp(ECL)
  • GNU Common Lisp(GCL)
  • LispWorks英语LispWorks
  • Macintosh Common Lisp英语Macintosh Common Lisp
  • Mocl英语Mocl
  • Poplog英语Poplog
  • Steel Bank Common Lisp(SBCL)
  • Symbolics Common Lisp英语Genera (operating system)
  • Bigloo英语Bigloo
  • Chez Scheme
  • Chicken
  • Gambit
  • Gauche英语Gauche (Scheme implementation)
  • GNU Guile
  • Ikarus英语Ikarus (Scheme implementation)
  • IronScheme英语IronScheme
  • JScheme
  • Kawa英语Kawa (Scheme implementation)
  • Larceny
  • MIT/GNU Scheme
  • Racket
  • RScheme英语RScheme
  • Scheme 48
  • SCM
  • SIOD
  • STklos英语STklos
  • TinyScheme
  • Ypsilon英语Ypsilon (Scheme implementation)
  • OpenLisp英语OpenLisp
  • Easy-ISLisp
未标准化
 
  • Arc
  • AutoLISP
  • BBN LISP
  • Clojure
  • Dylan
  • Emacs Lisp
  • EuLisp英语EuLisp
  • Franz Lisp
  • GOAL英语Game Oriented Assembly Lisp
  • Hy
  • Interlisp英语Interlisp
  • 知识工程环境英语Knowledge Engineering Environment
  • LispKit
  • *Lisp英语*Lisp
  • Le Lisp
  • LFE英语LFE (programming language)
  • Lisp Machine Lisp英语Lisp Machine Lisp
  • Maclisp
  • MDL英语MDL (programming language)
  • MLisp英语MLisp
  • MultiLisp英语MultiLisp
  • newLISP
  • NIL英语NIL (programming language)
  • PC-LISP英语PC-LISP
  • PicoLisp
  • Portable Standard Lisp英语Portable Standard Lisp
  • RPL英语RPL (programming language)
  • S-1 Lisp英语S-1 Lisp
  • SKILL
  • Spice Lisp英语Spice Lisp
  • T英语T (programming language)
  • Zetalisp英语Zetalisp
Logo
  • MSWLogo英语MSWLogo
  • NetLogo
  • StarLogo英语StarLogo
  • UCBLogo英语UCBLogo
  • Common Lisp界面管理器英语Common Lisp Interface Manager
  • McCLIM英语McCLIM
  • Genera英语Genera (operating system)
  • Scsh英语Scsh
  • Lisp机器
  • TI Explorer英语TI Explorer
  • Space-cadet键盘英语Space-cadet keyboard
实践
社群
技术标准
  • Scheme实现要求英语Scheme Requests for Implementation
  • Common Lisp HyperSpec英语Common Lisp HyperSpec
  • X3J13英语X3J13
教育
图书
教程
  • ProgramByDesign英语ProgramByDesign
组织
商业
  • 苹果公司
  • BBN
  • Harlequin英语Harlequin (software company)
  • Lucid Inc.英语Lucid Inc.
  • Symbolics英语Symbolics
  • Xanalys英语Xanalys
教育
人士
 
Common
Lisp
  • Scott Fahlman英语Scott Fahlman
  • Richard P. Gabriel英语Richard P. Gabriel
  • Philip Greenspun英语Philip Greenspun
  • David A. Moon英语David A. Moon
  • Kent Pitman英语Kent Pitman
  • Guy L. Steele Jr.
  • Daniel Weinreb英语Daniel Weinreb
Logo
  • 分类 语言
  • 分类 家族
  • 列表级条目 列表英语List of Lisp-family programming languages