De los interruptores y los chips de solo lectura pasamos a herramientas capaces de construirse a sí mismas. Esa evolución, aplicada a máquinas como la familia del seis mil quinientos dos, resume el bootstrap en programacion.
Para arrancar programas, las primeras máquinas nos hacían sudar la frente. Con conmutadores poníamos bits en memoria, dirección a dirección, hasta tener un pequeño cargador o un monitor capaz de leer algo más cómodo. Otra vía era soldar una ROM con un programita inicial, práctico pero caro y rígido.
Las tarjetas perforadas facilitaron el ritual. Un monitor guardado en ROM leía fila a fila, convertía perforaciones en valores, y dejaba el código en memoria listo para ejecutar. Aquí aparece la pareja clave: código máquina, que entiende el hardware, y ensamblador, que nos permite escribir mnemónicos legibles como LDA en lugar de largos patrones de bits.
Cómo nace un ensamblador. Primero lo escribimos muy pequeño, casi al nivel de máquina, para traducir unas cuantas instrucciones. Con esa semilla ensamblamos una versión mejor, que a su vez puede ensamblar otra más completa. Repetimos y ganamos macros, etiquetas, direcciones simbólicas y mensajes de error. El truco es que cada etapa se apoya en la anterior.
Ese encadenado lleva al autoalojamiento. Cuando un lenguaje puede compilarse con su propio compilador, hemos cerrado el círculo. Así se consolidó C, que pasaba de una plataforma a otra gracias a un compilador previo y a la idea de traducir primero a un subconjunto simple. Hoy seguimos haciendo algo parecido con compiladores cruzados y entornos de construcción.
¿Por qué nos interesa? Porque entender el camino desde el hierro hasta las herramientas modernas nos da criterio. Nos ayuda a leer un volcado de memoria sin miedo, a valorar lo que hace un cargador de arranque y a cacharrear con emuladores de la familia del seis mil quinientos dos por puro placer. Y sí, aprender estos cimientos nos hace mejores programadoras y programadores.
Propuesta de juego: dibujamos una memoria en papel con casillas, creamos una mini tabla de mnemónicos y jugamos por turnos a ensamblar y cargar un programita paso a paso.
Si queremos más ideas y retos jugables sobre estos temas, visitemos JeiJoLand.