Articulo de referencia

NIL (lenguaje de programación)

[[Guy L. Steele Jr.]], [[Richard P. Gabriel]]"},"released":{"wt":"{{Start date and age|1979}}"},"latest release version":{"wt":""},"latest release date":{"wt":""},"typing":{"wt"...

New Implementation of LISP ( NIL ) es un lenguaje de programación , un dialecto del lenguaje Lisp , desarrollado en el Instituto Tecnológico de Massachusetts (MIT) durante la década de 1970, y concebido como sucesor del lenguaje Maclisp . [ 1 ] Es una implementación de 32 bits , [ 2 ] y fue en parte una respuesta a la computadora VAX de Digital Equipment Corporation (DEC) . El proyecto fue liderado por Jon L White, [ 3 ] con el objetivo declarado de mantener la compatibilidad con MacLisp al tiempo que se corregían muchos de sus problemas.

Historia

El lenguaje Lisp fue inventado en 1958 por John McCarthy mientras estaba en el Instituto Tecnológico de Massachusetts (MIT). [ 4 ] Desde su inicio, Lisp estuvo estrechamente vinculado con la comunidad de investigación de inteligencia artificial (IA) , especialmente en los sistemas PDP-10 . El tamaño de palabra de 36 bits del PDP-6 y PDP-10 fue influenciado por la utilidad de tener dos punteros Lisp de 18 bits en una palabra: "El proyecto PDP-6 comenzó a principios de 1963, como una máquina de 24 bits . Creció a 36 bits para LISP, un objetivo de diseño." [ 5 ] Lisp se utilizó como la implementación del lenguaje de programación Micro Planner que fue la base del famoso sistema de IA SHRDLU . Lisp, en particular Maclisp (llamado así porque se originó en el proyecto MAC del MIT) también se utilizó para implementar el sistema de álgebra computacional Macsyma . En la década de 1970, a medida que la investigación en IA generaba ramificaciones comerciales, el rendimiento de los sistemas Lisp existentes se convirtió en un problema cada vez mayor.

En parte debido a la recolección de basura (Lisp usaría la recolección de basura de parada y copia de su único montón para la asignación de memoria [ 2 ] ) y en parte debido a su representación de estructuras internas, Lisp se volvió difícil de ejecutar en el hardware de computadoras estándar de memoria limitada de la época. Esto llevó a la creación de máquinas Lisp : hardware dedicado para ejecutar entornos y programas Lisp. Una alternativa fue usar el hardware comercial más potente que estaba empezando a estar disponible, especialmente el VAX de Digital Equipment Corporation (DEC) .

NIL fue una implementación de Lisp desarrollada en el MIT a mediados y finales de la década de 1970, y pretendía ser un sucesor moderno de Maclisp que pudiera ejecutarse en hardware estándar, [ 1 ] a diferencia de Lisp Machine Lisp para las máquinas Lisp. [ 2 ] "Diseñado originalmente como el primer dialecto moderno de Lisp en hardware estándar después del desarrollo de Lisp Machine Lisp en el MIT, se convirtió en una de las principales influencias en el diseño de Common Lisp." (pág. 63/294 de [ 2 ] ) Dado que los usuarios del programa Macsyma representaban una gran base de usuarios potenciales para NIL, era necesario que NIL fuera un sistema grande y complejo, y que la velocidad fuera imperativa. Por ejemplo, los bignums de alta velocidad eran un requisito para soportar Macsyma, ya que NIL sería un fracaso con bignums lentos. [ 6 ] En consecuencia, NIL terminó con una gran base de lenguaje ensamblador VAX . Estos requisitos llevaron a una estrategia de optimización muy agresiva y compleja que se aplicó prematuramente, con resultados negativos en el sistema final. [ 7 ]

Paralelamente al desarrollo de NIL, un grupo de investigación de la Universidad de Stanford y del Laboratorio Nacional Lawrence Livermore, dirigido por Richard P. Gabriel, investigaba el diseño de un lenguaje Lisp para ejecutarse en la supercomputadora S-1 Mark IIA , denominado S-1 Lisp . Este Lisp nunca llegó a ser completamente funcional, pero sirvió como banco de pruebas para implementar métodos avanzados de compilación . Finalmente, los grupos de S-1 y NIL comenzaron a colaborar.

Aunque no logró alcanzar sus objetivos como lenguaje de uso común, NIL fue importante en varios sentidos. Primero, reunió a Jon L. White, Guy L. Steele Jr. y Richard P. Gabriel, quienes más tarde definirían Common Lisp . [ 1 ] Segundo, Jonathan Rees trabajó en parte del proyecto NIL durante un año fuera de la Universidad de Yale . Al regresar a Yale, fue contratado por el departamento de informática para escribir un nuevo Lisp, que se convirtió en el sistema Scheme de código nativo optimizado llamado T. En parte, NIL dio origen a este nombre, ya que "T no es NIL". [ 7 ]

Citas

El origen y el eventual fracaso de este tipo de proyectos siempre se hacen evidentes (en retrospectiva) en las consignas de las primeras discusiones. Una frase clave que suele dar pistas es algo así como: "Deshagámonos de todo lo viejo , empecemos de cero y hagamos las cosas bien".

Olin Shivers [ 7 ]

Referencias

  1. 1 2 3 4 Steele, Guy L. Jr.; Gabriel, Richard P. "La evolución de Lisp" (PDF) . Recuperado el 5 de agosto de 2017 .
  2. 1 2 3 4 Gabriel, Richard P. (mayo de 1985). Rendimiento y evaluación de sistemas Lisp (PDF) . MIT Press ; Computer Systems Series. ISBN 978-0-262-07093-5LCCN 85015161. Archivado del original (PDF) el 22/09/2016 . Consultado el 15/10/2006 . 
  3. Pitman, Kent M. "Breve historia del lenguaje Lisp" . Archivado del original el 10 de octubre de 2006. Consultado el 12 de octubre de 2006 .
  4. McJones, Paul. "Historia de LISP" . Consultado el 12 de octubre de 2006 .
  5. Hurley, Peter J. Stevens, Jack; Johnson, Lum (eds.). "La historia de TOPS o la vida en los circuitos aéreos rápidos" . Google Groups . Consultado el 28 de noviembre de 2018 .
  6. Weinreb, Dan. "Dan Weinreb en NIL" . PaulGraham.com . Consultado el 28 de noviembre de 2018 .
  7. 1 2 3 Shivers, Olin. "Olin Shivers: Historia de T" . PaulGraham.com . Consultado el 28 de noviembre de 2018 .

Bibliografía

  • Brent T. Hailpern, Bruce L. Hitson. Manual de arquitectura S-1. Informe técnico 161 (STAN-CS-79-715), Departamento de Ingeniería Eléctrica, Universidad de Stanford, enero de 1979.
  • G. Burke. Introducción a NIL. Laboratorio de Ciencias de la Computación, Instituto Tecnológico de Massachusetts, marzo de 1983.
  • GS Burke, GJ Carrette, CR Eliot. Notas de NIL para la versión 0.259, Laboratorio de Ciencias de la Computación, Instituto Tecnológico de Massachusetts, junio de 1983.
  • GS Burke, GJ Carrette, CR Eliot. Manual de referencia NIL. Informe MIT/LCS/TR-311, Laboratorio de Ciencias de la Computación, Instituto Tecnológico de Massachusetts, Cambridge, Massachusetts, 1983.

Papeles

  • Steven Correll. Arquitectura de uniprocesador S-1 (sma-4). Volumen I, Capítulo 4, Informe anual del proyecto S-1 de 1979, Laboratorio Lawrence Livermore, Livermore, California, 1979.
  • Jon L. White. Nil: Una perspectiva. Actas de la Conferencia de Usuarios de Macsyma de 1979, Washington, DC, junio de 1979.
  • Rodney A. Brooks, Richard P. Gabriel, Guy L. Steele Jr. Implementación de S-1 Common Lisp. Actas del simposio de la ACM de 1982 sobre LISP y programación funcional, Pittsburgh, 1982, páginas 108-113. ACM DL
  • Rodney A. Brooks, Richard P. Gabriel, Guy L. Steele Jr. Un compilador optimizador para un LISP con ámbito léxico. Actas del Simposio de 1982 sobre Construcción de Compiladores, Boston, junio de 1982, páginas 261-275. ACM DL
  • Mark Smotherman. Supercomputadora S-1 (1975–1988). Sitio web, última actualización: 24 de abril de 2004. http://www.cs.clemson.edu/~mark/s1.html