Ayer recibimos otra triste noticia, John McCarthy, pionero en el campo de la Inteligencia Artificial, moría a la edad de 84 años. Dentro de su legado, el que fuera premiado con el Premio Turing en 1971, desarrolló en 1958 un lenguaje de programación, Lisp, durante su etapa en el MIT que, junto al FORTRAN, ostentan el honor de ser los dos lenguajes de programación de alto nivel más antiguos que aún hoy en día siguen siendo utilizados.
Lisp (LISt Processing) es una familia de lenguajes de programación que soporta más paradigma de programación y utiliza una notación matemática práctica basada en el cálculo lambda de Alonzo Church y Stephen Kleene y cuya estructura fundamental está basado en las listas enlazadas. Además, los programas desarrollados en Lisp permiten manejar el propio código como si de una estructura de datos se tratase y, por tanto, dan lugar a macrosistemas que permiten desarrollar nuevas sintaxis embebidas dentro del propio Lisp.
Sus características fundamentales podrían resumirse en:
Un manejo automático de la memoria que libera el espacio utilizado por los objetos que dejan de ser necesarios La inclusión de un mecanismo simple para utilizar la evaluación perezosa de expresiones Lisp no posee un sistema de tipos estáticos y, por tanto, los tipos se asocian a los valores en vez de a las variables. Los cálculos iterativos pueden realizarse en un espacio constante de memoria aunque se utilice recursividad para su cálculo
Tras su desarrollo en 1958, John McCarthy publicó el diseño de Lisp en 1960 en un artículo titulado "Funciones recursivas de expresiones simbólicas y su cómputo por la máquina, parte I" y publicado en Communications of the ACM (aunque nunca llegó a publicar una segunda parte) en el que mostró cómo se podía construir un lenguaje para que las máquinas pudiesen ejecutar algoritmos mediante un mecanismo alternativo a las Máquinas de Turing que ofreciese una notación matemática práctica con la que implementar programas para computadoras. La codificación de un programa en Lisp se basa en la descripción del problema indicando lo que se quiere conseguir y cómo pero sin la necesidad de indicar paso a paso la secuencia de acciones que el computador debe realizar.
Desde su concepción en 1955, Lisp fue el primer lenguaje de inteligencia artificial y, además, introdujo una serie de nuevos conceptos que, hoy en día, son de uso común como la recursividad, los procesos por listas, las estructuras de datos en forma de árbol, el manejo de almacenamiento automático o los tipos dinámicos de datos. Las sentencias IF, THEN y ELSE que, prácticamente, vemos en cualquier lenguaje de programación son un invento de McCarthy para Lisp.
Desde sus inicios, Lisp estuvo estrechamente vinculado a los equipos de investigación en el campo de la inteligencia artificial, principalmente, en sistemas basados en el computador PDP-10. El lenguaje de programación Micro Planner, base del sistema SHRDLU de inteligencia artificial, está basado en el Lisp. La primera implementación práctica de Lisp se debe a Steve Russel que fue capaz de implementar algunas funciones mediante el código máquina de un IBM 704 y, al final, desarrolló un intérprete Lisp plenamente funcional que podía evaluar expresiones Lisp. En 1974, Tim Hart y Mike Levin enl MIT fueron capaces de desarrollar un compilador completo de Lisp que introdujo en Lisp la compilación incremental, es decir, la posibilidad de mezclar libremente funciones compiladas e interpretadas.
Aunque durante los 80 y 90, la popularidad del Lisp decayó, en 1994, el ANSI publicó el estándar del Common Lisp (ANSI X3.226-1994 Information Technology Programming Language Common Lisp), que volvió a reavivarlo gracias al conjunto de implementaciones de fuente abierta que comenzaron a surgir,
John McCarthy no solo marcó un hito en la historia los lenguajes de programación sino que, además, creo un modelo de programación que ha influenciado a otros lenguajes como Smalltalk, Dylan o Perl, por tanto, sin Lisp y sin la obra de McCarthy muchas de las cosas que hoy hacemos, básicamente, nunca hubiesen existido.
Imágenes: The Sound of Science, Ithink Search y Desarrolloweb.com