máquina ceceo


Las máquinas Lisp son computadoras de uso general diseñadas para ejecutar eficientemente Lisp como su principal software y lenguaje de programación , generalmente a través de soporte de hardware. Son un ejemplo de una arquitectura informática de lenguaje de alto nivel y, en cierto sentido, fueron las primeras estaciones de trabajo comerciales para un solo usuario . A pesar de ser modesto en número (quizás 7,000 unidades en total a partir de 1988 [1] ), las máquinas Lisp fueron pioneras comercialmente en muchas tecnologías ahora comunes, que incluyen recolección de basura efectiva , impresión láser , sistemas de ventanas , ratones de computadora , gráficos de mapa de bits de alta resolución., renderizado de gráficos por computadora e innovaciones de redes como Chaosnet . [2] Varias empresas construyeron y vendieron máquinas Lisp en la década de 1980: Symbolics (3600, 3640, XL1200, MacIvory y otros modelos), Lisp Machines Incorporated (LMI Lambda), Texas Instruments ( Explorer, MicroExplorer ) y Xerox ( Interlisp - estaciones de trabajo D). Los sistemas operativos fueron escritos en Lisp Machine Lisp , Interlisp (Xerox), y posteriormente en parte en Common Lisp .

Los programas informáticos de inteligencia artificial (IA) de las décadas de 1960 y 1970 requerían intrínsecamente lo que entonces se consideraba una gran cantidad de potencia informática, medida en tiempo de procesador y espacio de memoria. Los requisitos de energía de la investigación de IA se vieron exacerbados por el lenguaje de programación simbólico Lisp, cuando el hardware comercial se diseñó y optimizó para lenguajes de programación ensambladores y similares a Fortran . Al principio, el costo de dicho hardware de computadora significaba que tenía que ser compartido entre muchos usuarios. A medida que la tecnología de circuitos integrados redujo el tamaño y el costo de las computadoras en la década de 1960 y principios de la de 1970, y las necesidades de memoria de los programas de IA comenzaron a exceder el espacio de direcciones de la computadora de investigación más común, laDigital Equipment Corporation (DEC) PDP-10 , los investigadores consideraron un nuevo enfoque: una computadora diseñada específicamente para desarrollar y ejecutar grandes programas de inteligencia artificial, y adaptada a la semántica del lenguaje Lisp . Para mantener el sistema operativo (relativamente) simple, estas máquinas no se compartirían, sino que estarían dedicadas a usuarios únicos. [ cita requerida ]

En 1973, Richard Greenblatt y Thomas Knight , programadores del Laboratorio de Inteligencia Artificial (AI Lab) del Instituto Tecnológico de Massachusetts (MIT) , comenzaron lo que se convertiría en el Proyecto de Máquina Lisp del MIT cuando comenzaron a construir una computadora cableada para ejecutar ciertas operaciones básicas de Lisp, en lugar de ejecutarlos en software, en una arquitectura etiquetada de 24 bits . La máquina también realizó una recolección de basura incremental (o Arena ) . [ cita requerida ]Más específicamente, dado que las variables Lisp se escriben en tiempo de ejecución en lugar de en tiempo de compilación, una simple adición de dos variables podría llevar cinco veces más tiempo en hardware convencional, debido a las instrucciones de prueba y bifurcación. Lisp Machines ejecutó las pruebas en paralelo con las adiciones de instrucciones individuales más convencionales. Si las pruebas simultáneas fallaban, el resultado se descartaba y se volvía a calcular; esto significó en muchos casos un aumento de velocidad por varios factores. Este enfoque de verificación simultánea también se usó para probar los límites de las matrices cuando se hace referencia a ellas y otras necesidades de administración de memoria (no simplemente recolección de elementos no utilizados o matrices).

La verificación de tipos se mejoró aún más y se automatizó cuando la palabra de bytes convencional de 32 bits se alargó a 36 bits para las máquinas Lisp modelo 3600 de Symbolics [3] y finalmente a 40 bits o más (por lo general, el exceso de bits no se tiene en cuenta por los siguientes se utilizaron para los códigos de corrección de errores ). El primer grupo de bits adicionales se usó para contener datos de tipos, lo que convirtió a la máquina en una arquitectura etiquetada , y los bits restantes se usaron para implementar la codificación CDR (donde los elementos de la lista enlazada habitual se comprimen para ocupar aproximadamente la mitad del espacio), lo que ayuda a la recolección de elementos no utilizados. según se informa, un orden de magnitud. Una mejora adicional fueron dos instrucciones de microcódigo que admitían específicamente las funciones de Lisp., reduciendo el costo de llamar a una función a tan solo 20 ciclos de reloj, en algunas implementaciones de Symbolics.


Una máquina Knight conservada en el Museo del MIT
Symbolics 3640 Lisp máquina