El Lenguaje de Programación LISP

John McCarthy

John McCarthy (1927–2011). The father of Artificial Intelligence. 

LISP es el segundo lenguaje de programación de mayor antigüedad, publicándose en el MIT después de Fortran y poco antes de COBOL. Creado para seguir la notación matemática del cálculo lambda de Alonzo Church. Entre otras aportaciones, LISP introdujo la estructura cond, que implementaba la, ahora esencial, estructura IF…THEN…ELSE.

LISP introdujo la posibilidad de definir estructuras de datos arborescentes y los tipos dinámicos de datos. Lo primero que recuerda cualquier persona que haya utilizado LISP es su sintaxis basada en la notación polaca y el uso extensivo de listas (LISP proviene de “LISt Processor”). Sus características hacen fácil el diseño de reglas útiles para la definición del comportamiento en escenarios complejos, lo que lo convirtió en favorito en el campo de la inteligencia artificial. Una de las particularidades destacadas de LISP consiste en que el código mismo esté estructurado en forma de listas, siendo este accesible, y modificable, por el mismo código.

Peter Seibel LISP Book

Peter Seibel LISP Book online

LISP es un lenguaje habitualmente interpretado, lo que, unido a que considera la recursión como estructura de control, hace que no fuera muy eficiente en sus primeras versiones. Si bien en los años 1990 sufrió un cierto declive, a partir del libro de Peter Seibel (accesible en línea de forma gratuita) despertó de nuevo interés, existiendo actualmente una comunidad activa que ofrece recursos y foros de discusión. Actualmente (2021), Common Lisp y Scheme son las versiones más extendidas.

El hecho que fuera de los primeros lenguajes publicados hizo que, obviamente, influenciara en muchos otros (Smalltalk, ALGOL), si bien la estructura radical de LISP (que considera el mismo tipo tanto para la definición del código como para estructurar los datos) hace que no puedan conseguir la coherencia y sinergia de éste.

LISP


Nacimiento: 1958
Evolución: Common Lisp (1984); ANSI Common Lisp (1994);
Influencias de: IPL
Influye en: ALGOL; Scheme; CLISP; Haskell; JavaScript; Logo; Smalltalk; Perl; Python; R;