Ir al contenido principal
Bethemesh
BiografíaHistoria de la informática

Grace Hopper: de los primeros compiladores a COBOL

Descubre cómo Grace Hopper ayudó a transformar la programación haciendo que los ordenadores tradujeran instrucciones legibles a operaciones de máquina.

Publicado el 3 de agosto de 2026Lectura : 7 minPor Equipo Bethemesh
Principiante
Retrato histórico de Grace Hopper
Mostrar el contenido
  1. Aprender a programar antes de que existiera la profesión
  2. Lo que realmente cuenta la historia de la polilla
  3. Por qué A-0 automatizó parte de la programación
  4. FLOW-MATIC acercó el código al trabajo empresarial
  5. COBOL fue una obra colectiva
  6. Por qué la portabilidad exige más que un lenguaje común
  7. Del diseño de lenguajes a su normalización
  8. Cronología
  9. Preguntas frecuentes
  10. ¿Inventó Grace Hopper el primer compilador?
  11. ¿Creó COBOL ella sola?
  12. ¿Inventó la palabra «bug»?
  13. ¿Por qué es importante FLOW-MATIC?
  14. ¿Por qué sigue existiendo COBOL?
  15. ¿Qué relación une a Grace Hopper y John Backus?

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.

Fuentes y referencias

  1. 1.Naval History and Heritage Command --- Grace Murray Hopper
  2. 2.Smithsonian --- Grace Hopper: The Navy and Computers
  3. 3.Computer History Museum --- Grace Murray Hopper
  4. 4.Computer History Museum --- Oral History of Grace Hopper
  5. 5.Smithsonian --- Log Book With Computer Bug

Colección

Lenguajes de programación

  1. 01Grace Hopper: de los primeros compiladores a COBOL
  2. 02John Backus: FORTRAN, la notación BNF y el rechazo del código máquina
  3. 03Dennis Ritchie: el lenguaje C en el corazón de Unix
  4. 04FORTRAN: demostrar que un compilador podía competir con el ensamblador
  5. 05El lenguaje C: hacer portables los sistemas sin ocultar la máquina
  6. 06Niklaus Wirth: de Pascal a Oberon, diseñar mediante la simplicidad
  7. 07Bjarne Stroustrup: diseñar C++ sin renunciar al rendimiento
  8. 08Pascal: aprender a programar haciendo visible la estructura
  9. 09C++: de C with Classes a un lenguaje de propósito general
  10. 10Programación orientada a objetos: objetos, mensajes y abstracciones reutilizables
  11. 11Guido van Rossum: crear Python para que el código sea legible
  12. 12Brendan Eich: JavaScript, del prototipo de Netscape al estándar web
  13. 13James Gosling: el ingeniero que dio origen a Java
  14. 14Python: legibilidad, baterías incluidas y un ecosistema mundial
  15. 15Java: escribir una vez, ejecutar en cualquier lugar
  16. 16JavaScript: el lenguaje que hizo interactiva la Web
  17. 17Ken Thompson: de Unix a Go, la simplicidad como método
  18. 18John McCarthy: Lisp y la idea de programar con símbolos
  19. 19Alan Kay: Smalltalk y el ordenador como medio personal
  20. 20Barbara Liskov: la abstracción que hizo modular el software
  21. 21Robin Milner: ML, la prueba asistida y los lenguajes de la interacción
  22. 22Brian Kernighan: AWK, Unix y el arte de explicar el código
  23. 23Anders Hejlsberg: de Turbo Pascal a C# y TypeScript
  24. 24Larry Wall: Perl, el lenguaje que conectó las herramientas de Internet
  25. 25Yukihiro Matsumoto: Ruby y la felicidad del programador
  26. 26Rasmus Lerdorf: PHP y la democratización de la Web dinámica

¿Te ha resultado útil este artículo?