*Lisp (o StarLisp ) es un lenguaje de programación , un dialecto del lenguaje Lisp . [ 1 ] Fue concebido en 1985 por dos empleados de Thinking Machines Corporation , Cliff Lasser y Steve Omohundro , como una forma de proporcionar un lenguaje eficiente pero de alto nivel para programar la naciente Connection Machine (CM).
Historia
Preludio
En el momento en que se diseñaba y construía la Connection Machine, el único lenguaje que se desarrollaba activamente para ella era un lenguaje de nivel ensamblador llamado PARIS ( Parallel Instruction Set ). Se hizo evidente que se necesitaba una mejor manera de programar la máquina, y con urgencia. Esperar a que se completara Connection Machine Lisp (CM Lisp), una implementación del lenguaje de programación de muy alto nivel Lisp con extensiones para computación paralela , no era una opción. CM Lisp había sido propuesto por Danny Hillis , y se esperaba que su desarrollo continuara durante varios años más.
Desarrollo
Inicialmente se desarrolló un intérprete de *Lisp. Pronto se hizo evidente que se necesitaría un compilador de *Lisp , que tradujera *Lisp a Lisp y PARIS, para alcanzar la velocidad de gigaFLOPS que, en teoría, podía lograr una Connection Machine. El compilador de *Lisp fue escrito por Jeff Mincy y se lanzó por primera vez en 1986. En 1987, Alan Egolf, entonces empleado de United Technologies , y JP Massar, empleado de Thinking Machines, desarrollaron una aplicación que superaba los dos gigaFLOPS: un simulador de estela de helicóptero. [ 2 ]
JP Massar desarrolló simultáneamente un simulador de *Lisp, un emulador diseñado para ejecutar código *Lisp en máquinas estándar no paralelas. Este simulador aún existe [ 3 ] y fue adaptado al Common Lisp (CL) del Instituto Nacional Estadounidense de Estándares (ANSI) en 2001. Una versión anterior, escrita en el CL original, se encuentra en el repositorio de inteligencia artificial (IA) de la Universidad Carnegie Mellon (CMU) [ 4 ] .
Cliff Lasser, Jeff Mincy y JP Massar trabajaron en versiones posteriores de *Lisp, que incluían mejoras significativas en sus funciones y rendimiento, hasta 1989. *Lisp fue implementado en la Thinking Machines CM5 entre 1990 y 1991 por JP Massar y Mario Bourgoin.
Implementación
StarLisp se escribió en Common Lisp (CL) y, por lo tanto, contaba con toda la potencia de CL. Para usar una Connection Machine, se necesitaba un host o interfaz . Para usar *Lisp, esa interfaz debía ejecutar CL. Las máquinas de Symbolics que utilizaban Genera y las estaciones de trabajo de Sun Microsystems que ejecutaban Lucid Common Lisp de Lucid Inc. se usaban para operar *Lisp.
StarLisp funcionaba con variables paralelas ( PVARS ). Estas representaban la memoria de la máquina de conexión y eran esencialmente vectores : un elemento por procesador CM (o procesador virtual).
StarLisp consistía en operaciones estándar sobre PVAR, como la suma y la multiplicación de vectores, junto con primitivas de comunicación que esencialmente reordenaban los elementos de un PVAR utilizando el hardware de comunicación del CM para enrutar los datos de forma óptima.
Referencias
- ↑ McJones, Paul (19 de abril de 2015). "Lisp paralelo: Connection Machine *Lisp (StarLisp)" . Museo de Historia de la Computación . Recuperado el 29 de diciembre de 2018 .
- ↑ Implementación de estela libre para helicópteros en arquitecturas informáticas avanzadas, Conferencia Internacional sobre Investigación Básica de Helicópteros, 1988 .
- ↑ "Franz Inc" . Franz Inc. Archivado del original el 6 de marzo de 2005. Consultado el 26 de junio de 2005 .
- ↑ Massar, JP (13 de febrero de 1995). "STARSIM: Simulador Lisp de *Thinking Machines" . Repositorio de Inteligencia Artificial de la Universidad Carnegie Mellon (CMU) . Recuperado el 29 de diciembre de 2018 .
- Lenguajes de programación concurrentes
- Lenguajes de programación de tipado dinámico
- Lenguajes funcionales
- Familia de lenguajes de programación Lisp
- Software Common Lisp (lenguaje de programación)
- Lenguajes de programación multiparadigma