源代码库 | - gitlab.common-lisp.net/cmucl/cmucl
|
---|
操作系统 | 遵守POSIX的OS |
---|
平台 | 跨平台 |
---|
语言 | Common Lisp |
---|
类型 | 编译器和运行时系统 |
---|
许可协议 | 公有领域 |
---|
网站 | www.cons.org/cmucl/ |
CMU Common Lisp(CMUCL),是自由的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 RT)、MIPS和SPARC。早期的CMUCL发行不支持Intel的x86架构,由于它缺乏寄存器。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的编辑器。
引用
- ^ https://gitlab.common-lisp.net/cmucl/cmucl/-/releases/21e.
- ^ https://gitlab.common-lisp.net/cmucl/cmucl/wikis/home
参閱
外部链接
- CMUCL Home Page (页面存档备份,存于互联网档案馆)
|
---|
| 特征 | | |
---|
| | - 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)
|
---|
| 教育 | 图书 | - Common Lisp语言(英语:Common Lisp the Language)
- 如何设计程序(HtDP)
- On Lisp(英语:On Lisp)
- Practical Common Lisp(英语:Practical Common Lisp)
- 计算机程序的构造和解释(SICP)
|
---|
| 教程 | - ProgramByDesign(英语:ProgramByDesign)
|
---|
|
---|
| 组织 | 商业 | - 苹果公司
- BBN
- Harlequin(英语:Harlequin (software company))
- Lucid Inc.(英语:Lucid Inc.)
- Symbolics(英语:Symbolics)
- Xanalys(英语:Xanalys)
|
---|
| 教育 | - 麻省理工学院
- 斯坦福人工智能实验室(英语:Stanford University centers and institutes#Stanford Artificial Intelligence Laboratory)
- 加利福尼亚大学伯克利分校
|
---|
|
---|
| 人士 | | |
---|
| 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)
|
|