maclisp


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 'Apara 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).