Maclisp

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Maclisp (o MACLISP, a veces llamado MacLisp o MacLISP) es un lenguaje de programación, un dialecto de el lenguaje Lisp. Se originó en el Proyecto MAC del Instituto Tecnológico de Massachusetts (MIT) (del que deriva su prefijo) a fines de la década de 1960 y se basó en Lisp 1.5. Richard Greenblatt fue el principal desarrollador del código base original del PDP-6; Jon L. White fue el 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.

Historia

Maclisp es un descendiente de Lisp 1.5. Maclisp parte de Lisp 1.5 al usar una celda de valor para acceder y almacenar los valores dinámicos de las variables; Lisp 1.5 usaba una búsqueda lineal de una lista de asociaciones para determinar el valor de una variable. 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 lector para hacer entrada y salida más legibles, denominadas entrada/salida (E/S). En lugar de ingresar (QUOTE A), se 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. Maclisp también tiene una función de carga bajo demanda.

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. Se agregaron características principales que en otros sistemas de idiomas normalmente corresponderían a números de versión principales.

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 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 Lisp influyente, 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.

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1,5, LISP 2(abandonado)
Maclisp
Interlisp
MDL
Lisp Machine Lisp
Plan R5RS R6RS R7RS pequeño
NIL
ZIL (Zork Implementation Language)
Franz Lisp
Lisp común ANSI standard
Le Lisp
MIT Plan
T
Chez Scheme
Emacs Lisp
AutoLISP
PicoLisp
Gambit
EuLisp
ISLISP
OpenLisp
PLT Plan Racket
GNU Guile
Visual LISP
Clojure
Arc
LFE
Hy

Características

Maclisp comenzó con una cantidad pequeña y fija de tipos de datos: celda contraria, átomo (más tarde denominado símbolo), número entero y número de coma flotante. Las adiciones posteriores incluyeron: matrices, que nunca fueron tipos de datos de primera clase; enteros de precisión arbitraria (bignums); instrumentos de cuerda; 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).

Los programas pueden ser interpretados o compilados. El comportamiento compilado fue el mismo que el interpretado, excepto que las variables locales eran léxicas de manera predeterminada en el código compilado, a menos que se declararan SPECIAL, y no se realizó verificación de errores para operaciones en línea como CAR y CDR. El compilador Ncomplr (mediados de la década de 1970) introdujo un soporte numérico rápido para los lenguajes Lisp, generando código de máquina (instrucciones) para la aritmética en lugar de llamar a rutinas interpretativas que se despachaban según el tipo de datos. Esto hizo que la aritmética de Lisp fuera comparable en velocidad a Fortran para operaciones escalares (aunque la implementación de matrices y bucles de Fortran siguió siendo mucho más rápida).

La versión original estaba limitada por la dirección de memoria de palabra de 18 bits del PDP-10, y se dedicó un esfuerzo considerable a mantener la implementación sencilla y sencilla. Multics Maclisp tenía un espacio de direcciones mucho más grande, pero su uso era costoso. Cuando se superó la capacidad de memoria y procesamiento del PDP-10, se inventó Lisp Machine: Lisp Machine Lisp es el descendiente directo de Maclisp. Varios otros dialectos Lisp también estaban en uso, y la necesidad de unificar la comunidad resultó en el lenguaje Common Lisp moderno.

Nombre

Maclisp recibió su nombre del Proyecto MAC y no está relacionado con la computadora Macintosh (Mac) de Apple, que es anterior en décadas, ni con John McCarthy. Los diversos sistemas Lisp para Macintosh no tienen ninguna similitud particular con Maclisp.

Contenido relacionado

Pérdida de memoria

En informática, una pérdida de memoria es un tipo de fuga de recursos que ocurre cuando un programa de computadora administra incorrectamente las...

Palabras de Caligra

Calligra Words es un procesador de textos, que forma parte de Calligra Suite y fue desarrollado por KDE como software...

Eric Raymond (desambiguación)

Eric S. Raymond es un autor y programador informático...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save