SectorLISP se convierte en el lenguaje de programación más pequeño del mundo: ocupa sólo 436 bytes para caber en el MBR de un disquete

SectorLISP se convierte en el lenguaje de programación más pequeño del mundo: ocupa sólo 436 bytes para caber en el MBR de un disquete
Sin comentarios Facebook Twitter Flipboard E-mail

LISP es el segundo lenguaje de programación de alto nivel de mayor antigüedad, habiendo sido creado en 1958 (un año después que FORTRAN y uno antes que COBOL)., una época de notables limitaciones de hardware, a algunos programadores les pareció un buen candidato a un proyecto destinado a insertar un intérprete de un lenguaje de programación dentro del MBR ('master boot record', el primer sector de un dispositivo de almacenamiento) de un viejo diskette.

El primer sector de un diskette tiene un espacio de 512 bytes, que puede usar para ejecutar un software básico desde la BIOS cuando el usuario utiliza el dispositivo en cuestión como dispositivo de arranque del PC.

Gracias a dicho proyecto ya habían nacido SectorFORTH y BootBasic, que en su momento llegaron a ostentar el título de "lenguaje de programación más pequeño del mundo", con 491 y 510 bytes de peso, respectivamente. Sin embargo, LISP (o más bien su adaptación SectorLISP) ha permitido superar dicha marca llegando a alcanzar los 436 bytes.

"El objetivo de este proyecto ha sido divertirse construyendo un kit que optimice el tamaño del archivo a expensas de todo lo demás"
Footprint2

Ahí donde el primigenio LISP 1.5 para IBM 7090 ocupaba ya 32.000 bytes, SectorLISP es 73 veces más pequeño, constando tan sólo de 223 líneas de código en ensamblador. Esto se debe, en parte, a una eficiencia del conjunto de instrucciones x86, en parte a una labor de 'podado' de funcionalidades, destinada a ofrecer únicamente las funciones básicas de LISP.

Según explican sus creadores:

"Averiguar cómo definir LISP utilizando solo sus operaciones fundamentales es algo más fácil de decir que de hacer".

Así, decidieron suprimir la clase LABEL ("la gente ha estado dejando comentarios desde 1958 afirmando que LABEL es innecesario") y, finalmente, el intérprete resultante ni siquiera tiene capacidad representación numérica, aunque técnicamente pueden sustituirse por el uso de los numerales de Church.

Esto no significa que estemos ante un lenguaje de programación 'de juguete' (como Brainfuck): puede ejecutar sin problemas el asistente de pruebas incluido en LISP 1.5., y hasta permitirnos programar nuestro propio intérprete LISP en 40 líneas del propio lenguaje LISP.

Un vistazo a…
La carrera de programador en 2017 y en el futuro (con Javier Santana)

Cómo probarlo

Es compatible con todos los modelos de PC que datan de 1981 y que cuenten con al menos 64 kb de RAM. Pero si deseas probarlo en tu actual equipo y careces de unidad de disquete, puedes ejecutar SectorLISP en algún emulador de PC como Blinkenlights. Para ejecutarlo, sigue los siguientes pasos en Linux:

curl --compressed https://justine.lol/blinkenlights/blinkenlights-latest.com >blinkenlights.com

curl https://justine.lol/sectorlisp/sectorlisp.bin >sectorlisp.bin

chmod +x blinkenlights.com

./blinkenlights.com -rt sectorlisp.bin

Ahora, teclea 'c' para continuar la ejecución, y asegúrate de poner tu terminal en modo pantalla completa, y de establecer un tamaño de fuente pequeño para poder ver todos los paneles.

Vía | justine.lol

Comentarios cerrados
Inicio