Lisp (lenguaje de programación)


Lisp (históricamente LISP ) es una familia de lenguajes de programación con una larga historia y una notación de prefijo distintiva, completamente entre paréntesis . [3] Originalmente especificado en 1958, Lisp es el segundo lenguaje de programación de alto nivel más antiguo . Solo Fortran es más antiguo, por un año. [4] [5] Lisp ha cambiado desde sus inicios, y han existido muchos dialectos a lo largo de su historia. Hoy en día, los dialectos Lisp de propósito general más conocidos son Racket , Common Lisp , Scheme y Clojure .

Lisp se creó originalmente como una notación matemática práctica para programas de computadora , influenciada por (aunque no derivado originalmente de) [6] la notación del cálculo lambda de Alonzo Church . Rápidamente se convirtió en el lenguaje de programación favorito para la investigación de inteligencia artificial (IA). [7] Como uno de los primeros lenguajes de programación, Lisp fue pionero en muchas ideas en ciencias de la computación , incluidas estructuras de datos de árbol , administración de almacenamiento automático , escritura dinámica , condicionales , funciones de orden superior ,recursion , el compilador autohospedado , [8] y el bucle read-eval-print . [9]

El nombre LISP deriva de "LISt Processor". [10] Las listas enlazadas son una de las principales estructuras de datos de Lisp , y el código fuente de Lisp está hecho de listas. Por lo tanto, los programas Lisp pueden manipular el código fuente como una estructura de datos, lo que da lugar a los sistemas macro que permiten a los programadores crear una nueva sintaxis o nuevos lenguajes específicos de dominio integrados en Lisp.

La intercambiabilidad de código y datos le da a Lisp su sintaxis instantáneamente reconocible. Todo el código del programa se escribe como expresiones s o listas entre paréntesis. Una llamada de función o forma sintáctica se escribe como una lista con el nombre de la función o del operador primero y los argumentos a continuación; por ejemplo, una función fque toma tres argumentos se llamaría .(f arg1 arg2 arg3)

John McCarthy desarrolló Lisp en 1958 mientras estaba en el Instituto Tecnológico de Massachusetts (MIT). McCarthy publicó su diseño en un artículo en Communications of the ACM en 1960, titulado "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I". [11] Demostró que con unos pocos operadores simples y una notación para funciones anónimas prestada de Church, uno puede construir un lenguaje completo de Turing para algoritmos.

El lenguaje de procesamiento de información fue el primer lenguaje de IA , de 1955 o 1956, y ya incluía muchos de los conceptos, como el procesamiento de listas y la recursividad, que llegaron a usarse en Lisp.


John McCarthy (arriba) y Steve Russell
Una máquina Lisp en el Museo del MIT
4.3 BSD de la Universidad de Wisconsin , mostrando la página man de Franz Lisp
Diagrama de caja y puntero para la lista (42 69 613)