*Lisp
Encyclopedia
The *Lisp programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 was conceived of in 1985 by Cliff Lasser and Steve Omohundro
Steve Omohundro
Steve Omohundro is an American scientist known for his research on Hamiltonian physics, dynamical systems, programming languages, machine learning, machine vision, and the social implications of artificial intelligence...

 (employees of the Thinking Machines Corporation) as a way of providing an efficient yet high-level language for programming the nascent Connection Machine
Connection Machine
The Connection Machine was a series of supercomputers that grew out of Danny Hillis' research in the early 1980s at MIT on alternatives to the traditional von Neumann architecture of computation...

.

Prelude

At the time the Connection Machine was being designed and built, the only language being actively developed for it was an Assembly
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

-level language known as PARIS (Parallel Instruction Set). It became evident that a better way to program the machine was needed and needed quickly. Waiting for the completion of CM Lisp, or "Connection Machine Lisp" (an implementation of the very high-level programming language Lisp
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...

 with parallel programming extensions) was not an option. CM Lisp had been proposed by Danny Hillis
W. Daniel Hillis
William Daniel "Danny" Hillis is an American inventor, entrepreneur, and author. He co-founded Thinking Machines Corporation, a company that developed the Connection Machine, a parallel supercomputer designed by Hillis at MIT...

, and development was expected to continue for several more years.

Development

A *Lisp interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

 was initially developed. It quickly became apparent that a *Lisp compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

, translating *Lisp into Lisp
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...

 and PARIS, would be needed to
attain the gigaflop speeds that were theoretically attainable by a Connection Machine
Connection Machine
The Connection Machine was a series of supercomputers that grew out of Danny Hillis' research in the early 1980s at MIT on alternatives to the traditional von Neumann architecture of computation...

. 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 of United Technologies
United Technologies Corporation
United Technologies Corporation is an American multinational conglomerate headquartered in the United Technologies Building in Hartford, Connecticut...

, and J. P. Massar, a Thinking Machines employee, in 1987; see "Helicopter Free Wake Implementation
On Advanced Computer Architectures", International Conference on Basic Rotorcraft Research, 1988)

A *Lisp Simulator, an emulator
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

 meant to run *Lisp code on standard, non-parallel machines, was developed at the same time by JP Massar. This simulator still exists, and was ported to ANSI
American National Standards Institute
The American National Standards Institute is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organization also coordinates U.S. standards with international...

 Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...

 in 2001. An older version written in the original Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...

, exists in the Carnegie Mellon University
Carnegie Mellon University
Carnegie Mellon University is a private research university in Pittsburgh, Pennsylvania, United States....

 AI Archives.

Later versions of *Lisp, involving significant upgrades to its functionality 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.

Implementation

StarLisp was essentially a set of macros written on top of Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...

, and therefore had the full power of Common Lisp behind it. To use a Connection Machine, one needed a host or 'front-end'. To use *Lisp, that front-end had to run Common Lisp. Symbolics
Symbolics
Symbolics refers to two companies: now-defunct computer manufacturer Symbolics, Inc., and a privately held company that acquired the assets of the former company and continues to sell and maintain the Open Genera Lisp system and the Macsyma computer algebra system.The symbolics.com domain was...

' machines using Genera OS and Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 workstations running Lucid Inc.
Lucid Inc.
Lucid Incorporated was a software development company founded by Richard P. Gabriel in 1984 which went bankrupt in 1994.-Beginnings:Gabriel had been working for Lawrence Livermore National Labs on a computer hardware project called "S1", the first incarnation of which used a CISC processor...

's Lucid Common Lisp were both used for *Lisp.

StarLisp operated on PVARS (Parallel Variables). PVARS represented Connection Machine memory, and were essentially vectors
Dynamic array
In computer science, a dynamic array, growable array, resizable array, dynamic table, or array list is a random access, variable-size list data structure that allows elements to be added or removed...

: one element per CM processor (or virtual processor).

StarLisp consisted of standard operations on PVARS, like vector addition and multiplication, along with communications primitives that essentially reordered the elements of a PVAR using the CM's communications hardware to optimally route the data.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK