Lisp机器(英語:Lisp machines)是被设计来高效运行以Lisp语言为主要软件开发语言的通用型计算机(通常通过硬件支持)。在某种意识上,Lisp机器是第一个商业的单用户工作站。尽管在数量上表现不如意(在1988年大概只有7000套),Lisp机器在商业上开创了许多现行的技术,包括高效的内存垃圾收集,激光打印,窗口化系统,计算机鼠标,高分辨率的位图,计算机图像解析和网络革新(像CHAOSN)。
在二十世纪八十年代,几家公司正建造和销售Lisp机器:Symbolics(3600,3640,XL1200,Maclvory和其他模型),Lisp机器公司(LMI Lambda),德州仪器(Explorer和MicroExplorer)和Xerox(InterLisp-D workstations)。这些操作系统都是用Lisp Machine Lisp,InterLisp(Xerox)和稍后出现的Common Lisp写的。
历史
历史背景
上世纪60和70年代的人工智能(AI)计算机程序大都要求以处理器时间和存储器空间为测量标准来看十分巨大的计算能力(对当时来说)。这种人工智能研究所需的计算能力上的要求是Lisp符号化编程语言所导致的。在当时商业的硬件都针对汇编类和Fortran系语言做设计和优化。最初,在硬件上的大量花费意味着Lisp机器只能被许多用户共享使用。但是随着60和70年代的集成电路技术逐渐缩小了计算机的大小和花费,并且AI程序所需内存开始超过最常用的研究用计算机DEC PDP-10的地址空间。研究者想出一条新思路:一台专门设计的计算机以开发和运行大型的人工智能程序,按照Lisp语言的语义量身定制。为了保持操作系统相对简洁,这些机器不会被共享,只为个人服务。
初期发展
在1973年,理查德·格林布莱特和托马斯·奈特(都来自MIT AI实验室的程序员),开始了一项后来变成了“MIT Lisp机器项目”的工程,而刚开始他们只打算使用24位标签式架构的方式造一台跟硬件紧密联系的可运行特定的基础的Lisp操作的计算机,而非通过软件运行他们。这台机器也可进行增量垃圾回收。更准确的说,因Lisp变量是运行时确定类型而非在编译时,在同一传统的硬件上,由于有测试和分支指令,两个变量间的加法运算可能花费五倍时间。
麻省理工学院Lisp机技术的商业化
在1979年,罗素·诺夫茨克确信Lisp语言的力量和硬件加速这一因素将会给Lisp机器带来一个光明的商业前景,这将使Greenblatt成为一项建议:他们将使这项技术商业化。
Lisp编程语言 |
---|
| 特征 | | |
---|
| | - 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)
|
|