Los primeros ordenadores no ejecutaban palabras como READ, ADD o
PAYROLL. Entendían códigos numéricos estrechamente ligados al
hardware. Grace Hopper dedicó su carrera a reducir esa distancia entre
la intención humana y las operaciones de la máquina.
Su aportación no se limita a un invento aislado ni a la creación
individual de COBOL. Programó uno de los primeros grandes calculadores
automáticos, dirigió trabajos pioneros sobre traducción de programas,
desarrolló con su equipo un lenguaje para datos empresariales y defendió
la normalización. Un hilo une todo ello: un programa debería expresar el
problema, no las peculiaridades de un ordenador.
Aprender a programar antes de que existiera la profesión
Grace Brewster Murray nació en Nueva York en 1906. Estudió matemáticas y
física en Vassar College y obtuvo un doctorado en matemáticas en Yale en
1934. Enseñó en Vassar hasta que la Segunda Guerra Mundial cambió su
trayectoria.
Ingresó en la reserva de la Marina estadounidense en 1943. Al año
siguiente fue destinada al equipo de Howard Aiken en Harvard, que
utilizaba el IBM Automatic Sequence Controlled Calculator, conocido
como Harvard Mark I.
El Mark I era una máquina electromecánica de varios metros que leía
instrucciones en cinta perforada. Hopper aprendió a programarla, produjo
tablas para la Marina y participó en su manual. El equipo tuvo que
formalizar una actividad nueva: descomponer problemas, ordenar
instrucciones, comprobar resultados y reutilizar secuencias. Programar
empezaba a ser una profesión distinta de construir hardware.
Lo que realmente cuenta la historia de la polilla
En 1947, el equipo del Harvard Mark II encontró una polilla atrapada en
un relé. La pegaron en el diario del laboratorio junto a una nota sobre
el primer caso real de un «bug».
La anécdota suele deformarse hasta afirmar que Hopper inventó la
palabra. Sin embargo, bug ya designaba fallos técnicos en el siglo
XIX, y el diario tampoco prueba que ella retirara el insecto. El juego
de palabras muestra sobre todo que bug y debugging ya pertenecían al
vocabulario informático.
Su importancia no depende de ese episodio, sino de su trabajo para hacer
la programación comprensible, transmisible e independiente del hardware.
Por qué A-0 automatizó parte de la programación
En 1949, Hopper entró en Eckert-Mauchly Computer Corporation, pronto
integrada en Remington Rand, para trabajar en UNIVAC I. Las empresas
querían procesar clientes, inventarios y nóminas, pero programar cada
operación en código máquina seguía siendo lento y caro.
A comienzos de los cincuenta, su equipo desarrolló A-0. El
programador identificaba subrutinas disponibles; A-0 encontraba su
código, lo cargaba y organizaba su uso. Según las definiciones actuales,
se parece tanto a un cargador y editor de enlaces como a un compilador
completo.
Por ello, es más preciso llamarlo uno de los primeros sistemas de
compilación que «el primer compilador» sin matices. Su importancia no
depende de la etiqueta: mostró que un programa podía preparar
automáticamente otro para ejecutarlo. A-1, A-2 y MATH-MATIC prolongaron
la idea y respaldaron la tesis, entonces discutida, de que una máquina
podía traducir notaciones humanas con fiabilidad.
FLOW-MATIC acercó el código al trabajo empresarial
Los lenguajes científicos representaban ante todo fórmulas. Las
aplicaciones comerciales describían operaciones como leer un archivo,
comparar registros, calcular un total o imprimir un informe. Hopper
creía que la notación debía reflejar ese vocabulario.
Su equipo desarrolló FLOW-MATIC a mediados de los cincuenta. Sus
instrucciones próximas al inglés describían flujos de datos. La
legibilidad no eliminaba la necesidad de aprender a programar, pero
acercaba el código a procedimientos conocidos por analistas y
organizaciones.
FLOW-MATIC también enseñó una lección de portabilidad. Si una
instrucción expresaba una operación empresarial y no un detalle del
hardware, un compilador podía traducirla para distintas máquinas. Este
enfoque preparó directamente las conversaciones que producirían COBOL.
COBOL fue una obra colectiva
En 1959, fabricantes, administraciones y usuarios se reunieron en
CODASYL, el Committee on Data Systems Languages. Buscaban un
lenguaje común para aplicaciones de gestión que funcionara en máquinas
de distintos proveedores.
Hopper participó en la primera reunión y FLOW-MATIC influyó
profundamente en el proyecto. Llevaba años defendiendo instrucciones
próximas al inglés e independencia de la máquina. Sin embargo, la
especificación fue obra de comités y un grupo de redacción produjo el
texto inicial.
Decir que Hopper inventó COBOL sola borra esa cooperación. Fue una
pionera, una influencia técnica y una promotora decisiva; después
contribuyó a la adopción y normalización, especialmente desde la Marina.
COBOL permitió conservar programas al cambiar el hardware. Su longevidad
refleja décadas de reglas empresariales costosas y arriesgadas de
sustituir.
Por qué la portabilidad exige más que un lenguaje común
Una especificación no basta. Los fabricantes pueden interpretar una
regla de forma distinta, aceptar extensiones incompatibles o discrepar
en casos límite. Hopper insistió en la validación de compiladores:
baterías de programas comprobaban si una implementación reconocía las
construcciones requeridas y producía el comportamiento previsto.
La validación no demostraba la ausencia total de errores; establecía una
conformidad medible y comparable. Existe una continuidad: A-0 automatizó
subrutinas, FLOW-MATIC usó vocabulario empresarial, COBOL ofreció un
lenguaje compartido y la validación buscó preservar su significado entre
máquinas.
La normalización puede parecer menos inventiva que diseñar sintaxis,
pero decide si una idea se convierte en infraestructura duradera o queda
ligada a un proveedor.
Del diseño de lenguajes a su normalización
Hopper continuó en Remington Rand y Sperry Rand, publicó trabajos, formó
programadores y presentó los lenguajes como herramientas para ampliar el
acceso a los ordenadores.
Tras dejar la reserva en 1966, volvió al servicio activo en 1967. La
Marina necesitaba programas COBOL compatibles y verificables entre
sistemas; Hopper trabajó en validación y normalización.
Permaneció hasta 1986 y se retiró como contraalmirante. En sus
conferencias hacía tangibles las escalas informáticas: utilizaba trozos
de cable equivalentes a la distancia recorrida por la luz en un
nanosegundo para explicar el coste físico del tiempo.
Hopper murió en 1992. Su legado reside en los compiladores y en una
convicción hoy fundamental: los lenguajes deben acercar los programas a
los problemas humanos y las normas deben evitar que ese progreso quede
preso de una sola máquina.
Cronología
- 1906: Grace Brewster Murray nace en Nueva York.
- 1928: se gradúa en matemáticas y física en Vassar College.
- 1934: obtiene el doctorado en matemáticas en Yale.
- 1943: ingresa en la reserva de la Marina estadounidense.
- 1944: entra en el equipo del Harvard Mark I.
- 1947: aparece la polilla en un relé del Mark II.
- 1949: llega a Eckert-Mauchly para trabajar en UNIVAC.
- 1952: presenta los trabajos sobre A-0.
- 1955–1959: su equipo desarrolla FLOW-MATIC.
- 1959: participa en las primeras conversaciones de CODASYL.
- 1960: se publica la primera especificación COBOL.
- 1967: la Marina la llama para trabajar en su normalización.
- 1986: se retira como contraalmirante.
- 1992: fallece en Arlington, Virginia.
- Hoy: compiladores, lenguajes portables y normas prolongan los
problemas a los que dedicó su carrera.
Preguntas frecuentes
¿Inventó Grace Hopper el primer compilador?
Dirigió el desarrollo de A-0, presentado a menudo como el primer
compilador. Su función también se parece a lo que hoy llamaríamos
cargador o editor de enlaces; «uno de los primeros sistemas de
compilación» es más preciso.
¿Creó COBOL ella sola?
No. Los comités de CODASYL diseñaron COBOL colectivamente. Las ideas de
Hopper y FLOW-MATIC influyeron directamente, y ella desempeñó después un
papel importante en su adopción, validación y normalización.
¿Inventó la palabra «bug»?
No. La palabra ya describía defectos técnicos. La polilla del Mark II
inspiró una broma memorable sobre un bug «real», pero no originó el
término.
¿Por qué es importante FLOW-MATIC?
Demostró que un lenguaje empresarial podía usar palabras próximas a los
procedimientos de una organización y seguir siendo traducible por una
máquina. Influyó directamente en COBOL.
¿Por qué sigue existiendo COBOL?
Las organizaciones han acumulado décadas de reglas empresariales
probadas en COBOL. Sustituirlas es caro y arriesgado, y la portabilidad
inicial permitió que el código sobreviviera a varias generaciones de
hardware.
¿Qué relación une a Grace Hopper y John Backus?
Ambos intentaron alejar la programación del código máquina en los años
cincuenta. Hopper se orientó al tratamiento comercial con FLOW-MATIC y
COBOL; Backus dirigió FORTRAN para el
cálculo científico.