¿Cómo comenzó la codificación si necesita codificación para codificar?

Las máquinas ejecutan instrucciones en código de máquina, 0 y 1. Los ensambladores son programas que convierten el lenguaje ensamblador en código de máquina binario.

Las primeras computadoras tenían lenguajes de máquina bastante simples, por lo que en realidad se podía descifrar el código de la máquina para un programa corto a mano.

Cuando aprendí por primera vez cómo iniciar una computadora PDP-8 en 1969, tuve que cargar un pequeño bucle de código de máquina en la memoria activando los interruptores para configurar los bits en la memoria correctamente para ese bucle, luego iniciar la computadora que ejecuta ese código de máquina .

El código de máquina que ingresé fue un cargador de arranque. No podía hacer otra cosa que leer un lector de cinta de papel para leer un cargador más extenso en la memoria. (Ese cargador más extenso era esencialmente todo el sistema operativo para la computadora). Eso podría usarse para cargar otros programas en la memoria. Esos otros programas estaban todos en código de máquina binario. (Un agujero en la cinta de papel era 1, ningún agujero era 0.)

Cintas de papel para el PDP8, fuente de imagen: PC04 Lector de cinta de papel de alta velocidad y cintas de papel perforado

Una de esas cintas de papel que pude cargar fue un editor. El editor podría recibir información de una máquina de teletipo o cinta de papel y crear un archivo de texto, editar ese archivo de texto y luego perforar ese archivo de texto en cinta de papel. Un tipo de archivo de texto era un programa en lenguaje ensamblador con instrucciones como “AGREGAR Y” (es decir, agregar el contenido de la ubicación Y al acumulador). Los programas que escribí para el PDP8 eran todos programas en lenguaje ensamblador.

Otra de las cintas de papel que pude cargar fue un ensamblador. Después de cargar el ensamblador, leería el archivo de texto en cinta de papel que contenía mi programa de lenguaje ensamblador preparado. Era un ensamblador de dos pasos, así que tuve que pasar dos veces la cinta de papel del archivo de texto. Luego, el ensamblador perforaría un archivo ejecutable que estaba en código de máquina binario, pero en cinta de papel.

Finalmente, podría cargar mi programa y comenzar a ejecutarlo. La mayoría de las veces, no se ejecutó correctamente y tuve que depurarlo. Eso implicaría examinar los datos en la memoria, todo en binario, por supuesto, y tratar de descubrir qué salió mal.

La codificación comenzó con tarjetas perforadas utilizadas para controlar telares para hacer telas.

Básicamente, era necesario poder controlar maquinaria compleja de manera repetible y abstracta. El código provenía de máquinas que se volvían lo suficientemente complejas como para controlarlas y requería algo más parecido a un lenguaje que a una palanca.

Una historia de lenguajes de programación de computadoras hace un gran trabajo al explicar eso además de la historia de lenguajes de programación.

Esencialmente, la programación comenzó como matemática teórica y se convirtió en tarjetas perforadas. A partir de ahí se hizo Fortran, luego Cobol. El resto es historia a partir de ahí.

Lo siento, la publicación no es muy larga, sin embargo, Brown Uni y Wikipedia ya cubrieron el tema con gran detalle y sería una pena copiar y pegar el duro trabajo de otras personas como una publicación mía. En cambio, se proporcionan los enlaces y este texto adicional en la parte inferior es para asegurarme de que mi publicación no se contraiga automáticamente por ser una respuesta demasiado corta.