El Lenguaje de Programación Funcional Más Antiguo - Basado en Listas
Lisp (LISt Processor) es el segundo lenguaje de programación de alto nivel más antiguo aún en uso, creado por John McCarthy en 1958. Es considerado el padre de los lenguajes de programación funcionales y ha influenciado profundamente el desarrollo de la inteligencia artificial y la ciencia de la computación.
La característica más distintiva de Lisp es su sintaxis basada en expresiones S (symbolic expressions), que representa tanto código como datos en forma de listas. Esta homogeneidad entre código y datos permite capacidades metaprogramáticas avanzadas.
"Lisp no es un lenguaje, es un material de construcción." - Alan Kay
Todas las operaciones se escriben en notación polaca: (+ 1 2 3)
El código es representado como estructuras de datos del lenguaje
Lisp fue el primer lenguaje en implementar garbage collection automático
Permiten extender el lenguaje con nuevas construcciones sintácticas
A pesar de su antigüedad, Lisp continúa siendo utilizado en áreas donde su expresividad y capacidades metaprogramáticas son invaluables. Su diseño elegante y minimalista ha inspirado generaciones de lenguajes de programación.
Investigación en IA
Editores y Herramientas
Sistemas de Automatización
Dato curioso: Emacs, uno de los editores de texto más poderosos, está extensivamente programado en Emacs Lisp, demostrando la versatilidad y potencia del lenguaje.
Lisp ha evolucionado en múltiples dialectos a lo largo de los años, cada uno con sus propias características y comunidades.
Estándar industrial que unifica múltiples dialectos anteriores. Ampliamente utilizado en aplicaciones comerciales y de investigación.
Diseño minimalista y elegante, popular en educación e investigación. Enfocado en elegancia conceptual.
Dialecto moderno que ejecuta en la JVM, combinando Lisp con inmutabilidad y concurrencia práctica.
Dialecto específico para la extensión del editor Emacs, con millones de líneas de código en producción.
Aunque Lisp precede a la mayoría de los lenguajes de programación modernos, muchos de sus conceptos fundamentales han sido adoptados y adaptados.
Conceptos pioneros de Lisp que adoptaron otros lenguajes: recolección de garbage collection, funciones de primera clase, closures, introspección, y el ciclo REPL han sido incorporados en Python, JavaScript, Ruby, y muchos lenguajes modernos.
Contrario a lo que podría esperarse de un lenguaje de los años 50, Lisp mantiene una comunidad activa y continúa siendo utilizado en proyectos innovadores. Su capacidad para adaptarse mediante macros lo mantiene relevante incluso frente a lenguajes más modernos.