Historia y arquitectura de LISP en 64K de memoria

Fuentes: LISP history and architecture in 64K of memory

El artículo explora la implementación de LISP en entornos de memoria extremadamente restringidos, centrándose en el caso de 64K bytes de memoria total, que incluye el sistema operativo, la pila de ejecución y la pila de cons. Este límite de espacio equivale a la capacidad de un DEC PDP-1 básico o un programa PCDOS de modelo pequeño, superando ligeramente la capacidad de las primeras implementaciones de LISP en la IBM 704 de M.I.T. en 1960, que disponía de 32K palabras de memoria de núcleo de 36 bits. En esa época, un cons cell ocupaba una palabra completa, limitando el sistema a menos de 20K celdas disponibles, mientras que la IBM 704 requería instalaciones pesadas de 10 toneladas. En 1964, el PDP-1 permitió ejecutar LISP con solo 4096 palabras de almacenamiento de 18 bits, utilizando aproximadamente 2000 palabras para el sistema y permitiendo 2000 celdas. El texto detalla la implementación de Kilo LISP, un sistema portable escrito en ANSI C que compila a un ejecutable PCDOS capaz de operar en 64K bytes. En esta configuración, el sistema ocupa 13K bytes, dejando espacio para 8192 celdas de cons, cada una con 5 bytes (16 bits para car, 16 para cdr y 3 bits para tag). Aunque los ordenadores antiguos operaban a velocidades de 40kHz o 150kHz, el artículo destaca que hoy es posible emular estos sistemas en smartphones modernos. El enfoque principal es la gestión de la memoria y la eficiencia espacial, ignorando los tiempos de ejecución, ofreciendo una perspectiva histórica sobre cómo se optimizaba el código en hardware limitado.