This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "*Lisp" – news ·newspapers ·books ·scholar ·JSTOR(February 2008) (Learn how and when to remove this message) |
| |
|---|---|
| Paradigms | Multi-paradigm:functional,procedural,reflective,meta,parallel |
| Family | Lisp |
| Designed by | Cliff Lasser,Steve Omohundro |
| Developer | Thinking Machines Corporation |
| First appeared | 1986; 40 years ago (1986) |
| Typing discipline | Dynamic,strong |
| Scope | Static, lexical |
| Implementation language | Common Lisp |
| Platform | Connection Machine |
| OS | Connection Machine |
| Influenced by | |
| Lisp,Common Lisp | |
| Influenced | |
| C* | |
*Lisp (orStarLisp) is aprogramming language, adialect of the languageLisp.[1] It was conceived of in 1985 by two employees of theThinking Machines Corporation, Cliff Lasser andSteve Omohundro, as a way to provide an efficient yet high-level language for programming the nascentConnection Machine (CM).
At the time the Connection Machine was being designed and built, the only language being actively developed for it was anassembly-level language named PARIS (ParallelInstructionSet). It became evident that a better way to program the machine was needed, and quickly. Waiting for the completion ofConnection Machine Lisp (CM Lisp), an implementation of thevery high-level programming languageLisp withparallel computing extensions, was not an option. CM Lisp had been proposed byDanny Hillis, and development was expected to continue for several more years.
A *Lispinterpreter was initially developed. It became apparent quickly that a *Lispcompiler, translating *Lisp intoLisp and PARIS, would be needed to attain the gigaFLOPS speed that was attainable in theory by a Connection Machine. The *Lisp compiler was written by Jeff Mincy and was first released in 1986. An application achieving more than two gigaFLOPS, a helicopter wake simulator, was developed by Alan Egolf, then an employee ofUnited Technologies, and J. P. Massar, a Thinking Machines employee, in 1987.[2]
A *Lisp Simulator, anemulator meant to run *Lisp code on standard, non-parallel machines, was developed at the same time by J. P. Massar. This simulator still exists[3] and was ported toAmerican National Standards Institute (ANSI)Common Lisp (CL) in 2001. An older version, written in the original CL, exists in theCarnegie Mellon University (CMU)artificial intelligence (AI) repository.[4]
Later versions of *Lisp, involving significant upgrades to its functions and performance, were worked on by Cliff Lasser, Jeff Mincy, and J. P. Massar through 1989. *Lisp was implemented on the Thinking Machines CM5 circa 1990–1991 by J. P. Massar and Mario Bourgoin.
| 1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LISP 1, 1.5,LISP 2(abandoned) | |||||||||||||||
| Maclisp | |||||||||||||||
| Interlisp | |||||||||||||||
| MDL | |||||||||||||||
| Lisp Machine Lisp | |||||||||||||||
| Scheme | R5RS | R6RS | R7RS small | ||||||||||||
| NIL | |||||||||||||||
| ZIL (Zork Implementation Language) | |||||||||||||||
| Franz Lisp | |||||||||||||||
| muLisp | |||||||||||||||
| Common Lisp | ANSI standard | ||||||||||||||
| Le Lisp | |||||||||||||||
| MIT Scheme | |||||||||||||||
| XLISP | |||||||||||||||
| T | |||||||||||||||
| Chez Scheme | |||||||||||||||
| Emacs Lisp | |||||||||||||||
| AutoLISP | |||||||||||||||
| PicoLisp | |||||||||||||||
| Gambit | |||||||||||||||
| EuLisp | |||||||||||||||
| ISLISP | |||||||||||||||
| OpenLisp | |||||||||||||||
| PLT Scheme | Racket | ||||||||||||||
| newLISP | |||||||||||||||
| GNU Guile | |||||||||||||||
| Visual LISP | |||||||||||||||
| Clojure | |||||||||||||||
| Arc | |||||||||||||||
| LFE | |||||||||||||||
| Hy | |||||||||||||||
StarLisp was written onCommon Lisp (CL) and thus had the full power of CL behind it. To use a Connection Machine, one needed a host orfront-end. To use *Lisp, that front-end had to run CL.Symbolics's machines usingGenera andSun Microsystems workstations runningLucid Inc.'s Lucid Common Lisp were both used to operate *Lisp.
StarLisp operated onParallelVariables (PVARS). These represented Connection Machine memory and were essentiallyvectors: one element per CM processor (or virtual processor).
StarLisp consisted of standard operations on PVARS, like vector addition and multiplication, along with communication primitives that essentially reordered the elements of a PVAR using the CM's communication hardware to optimally route the data.