Maclisp (o MACLISP , a veces llamado MacLisp o MacLISP ) es un lenguaje de programación , un dialecto del lenguaje Lisp . Se originó en el Proyecto MAC [1] del Instituto Tecnológico de Massachusetts (MIT) (del cual deriva su prefijo) a fines de la década de 1960 y se basó en Lisp 1.5. [2] Richard Greenblatt fue el principal desarrollador del código base original del PDP-6 ; [1] Jon L. White fue responsable de su posterior mantenimiento y desarrollo. El nombre Maclisp comenzó a usarse a principios de la década de 1970 para distinguirlo de otras bifurcaciones de PDP-6 Lisp, en particular BBN Lisp .
Maclisp es un descendiente de Lisp 1.5 . [3] Maclisp parte de Lisp 1.5 al usar una celda de valor para acceder y almacenar los valores dinámicos de las variables ; [4] Lisp 1.5 usaba una búsqueda lineal de una lista de asociaciones para determinar el valor de una variable. [5] La evaluación de variables de Maclisp es más rápida pero tiene una semántica variable diferente. Maclisp también empleó macros de lectores para hacer entradas y salidas más legibles , denominadas entrada/salida (E/S). En lugar de ingresar (QUOTE A)
, uno podría ingresar 'A
para obtener la misma expresión s. Aunque ambas implementaciones colocan funciones en la lista de propiedades, Maclisp usa una sintaxis diferente para definir funciones. [6] Maclisp también tiene una función de carga bajo demanda. [7]
Maclisp comenzó en las computadoras PDP-6 y PDP-10 de Digital Equipment Corporation que ejecutaban el Sistema de tiempo compartido incompatible (ITS); más tarde fue portado a todos los demás sistemas operativos PDP-10, por ejemplo, Timesharing/Total Operating System , TOPS-10 y TOPS-20 . La implementación original estaba en lenguaje ensamblador , pero una implementación posterior en Multics usó PL/I . Maclisp se desarrolló considerablemente durante su vida. Características principales [ ¿cuáles? ] que en otros sistemas lingüísticos normalmente corresponderían a los principales números de versión. [dudoso ]
Maclisp se utilizó para implementar el sistema de álgebra computacional (CAS) Macsyma o el programa de álgebra simbólica. El desarrollo de Macsyma también impulsó varias funciones [ ¿cuáles? ] en MacLisp. El programa del mundo de bloques SHRDLU se escribió en Maclisp, por lo que el lenguaje se usó ampliamente en la comunidad de investigación de inteligencia artificial (IA) a principios de la década de 1980. También se utilizó para implementar otros lenguajes de programación, como Planner y Scheme . Multics Maclisp se utilizó para implementar el primer Emacs basado en Lisp .
Maclisp fue una implementación influyente de Lisp, pero ya no se mantiene activamente. Ahora se ejecuta en emuladores PDP-10 y se puede usar para experimentar con los primeros programas de IA.
Maclisp comenzó con un número pequeño y fijo de tipos de datos : celda de cons , átomo (más tarde denominado símbolo ), entero y número de punto flotante . Las adiciones posteriores incluyeron: matrices , que nunca fueron tipos de datos de primera clase; enteros de precisión arbitraria (bignums); cuerdas ; y tuplas . Todos los objetos (excepto inums) se implementaron como punteros , y su tipo de datos estaba determinado por el bloque de memoria al que apuntaba, con un caso especial para números pequeños (inums).