Lisp机器

位于麻省理工学院博物馆的LISP机器

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
教育
图书
教程
  • 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