Kathleen Booth, la matemática pionera en programación que creó el primer lenguaje ensamblador

Matemoción

Andrew era una figura muy extrovertida… mientras que Kathleen era muy tranquila y trabajaba en segundo plano. Así que no me sorprende en absoluto que gran parte del crédito por sus logros conjuntos se le dé a Andrew. Pero admitirían que trabajaron juntos constantemente.

Rick Bunt

La matemática Kathleen Booth contribuyó con su trabajo pionero al desarrollo de las primeras computadoras. Codiseñó uno de los primeros ordenadores operativos, escribió uno los primeros libros sobre diseño y programación de computadoras, creó el primer lenguaje ensamblador, investigó sobre la traducción del lenguaje natural y las redes neuronales, y cocreó el conocido como algoritmo de multiplicación de Booth. Como ha sucedido a otras muchas investigadoras, una figura masculina, aun sin pretenderlo, la eclipsó.

Kathleen Booth. Fuente: Microsoft.

Kathleen Hylda Valerie Britten (1922-2022) nació en Stourbridge (Inglaterra); era la segunda de los tres hijos de Gladys May Kitchen y Frederick John Britten, un inspector de impuestos.

En 1944 obtuvo un grado en ciencias con especialidad en matemáticas en el Royal Holloway College, centro en el que pudo estudiar gracias a una beca concedida por tres años.

Como a otras muchas mujeres, la Segunda Guerra Mundial le proporcionó una oportunidad de trabajo basado en la ciencia al margen de la enseñanza, a la que se las limitaba profesionalmente. Así, comenzó a trabajar como oficial científica junior en el Royal Aircraft Establishment en Farnborough; en este centro de investigación colaboró en la realización de pruebas estructurales en materiales que se utilizaron posteriormente en la fabricación de aeronaves.

Los tediosos cálculos cristalográficos

En 1946 Kathleen se unió a un grupo de investigación en cristalografía de rayos X en el Birkbeck College. El equipo estaba dirigido por el cristalógrafo John Desmond Bernal (1901-1971), secundado por el físico Andrew Donald Booth (1918-2009).

Desde 1943 Booth trabajaba en la determinación de estructuras cristalinas usando datos obtenidos por difracción de rayos X. Estas investigaciones requerían cálculos numéricos excesivamente largos y pesados por lo que decidió intentar automatizar el proceso desarrollando una computadora analógica. Kathleen se incorporó al equipo matemáticos de Booth en el Birkbeck College, trabajando con las imágenes obtenidas mediante cristalografía de rayos X y que contribuyeron al descubrimiento de la forma de doble hélice del ADN.

Kathleen y Andrew iniciaron una larga colaboración científica que duraría toda su vida. Britten obtuvo su doctorado en matemática aplicada en el King’s College de Londres en 1950 y, ese mismo año, se casó con Andrew Booth. El matrimonio tuvo un hijo y una hija.

Andrew Booth y Kathleen Britten. Fuente: International Union of Crystallography (Creative Commons).

Diseñando y programando ordenadores

Kathleen y Andrew colaboraron en la construcción y programación de tres computadoras. Como físico e ingeniero electrónico, él se encargaba del diseño y ella, con una profunda formación matemática, de la parte de programación.

Booth diseñó entre 1947 y 1948 una computadora electromecánica, la ARC (Automatic Relay Calculator). No era un ordenador de propósito general; fue diseñado específicamente para hacer la síntesis de Fourier, uno de los pasos esenciales para determinar la estructura de un cristal. Aunque Andrew lo diseñó, fue Kathleen quien lo construyó y probó junto a la asistente de investigación Xenia Sweeting.

En esa época Kathleen creó un lenguaje simbólico para simplificar el proceso de programación de la máquina; lo denominó Contracted Notation (en General Considerations in the Design of an All-purpose Electronic Digital Computer, 1947). Se reconoce como el primer lenguaje ensamblador del mundo. Esta propuesta, que traduce unos y ceros en instrucciones legibles por seres humanos, supuso un gran avance en la programación de computadoras, que hasta ese momento se realizaba introduciendo bits individuales e incluso conectando y desconectando cables.

También diseñaron la máquina SEC (Simple Electronic Computer) entre 1948 y 1949.

En esa época Andrew y Kathleen crearon el llamado algoritmo de multiplicación de Booth, de interés en el estudio de la arquitectura de ordenadores.

Su máquina más conocida fue la APEC (All-Purpose Electronic Computer), diseñada en 1949. En 1951, la empresa British Tabulating Machine Company usó sus circuitos de hardware como base para el diseño de su computadora HEC 1 (Hollerith Electronic Computer).

Kathleen Britten y Xenia Sweeting. Fuente: International Union of Crystallography (Creative Commons).

Todo este trabajo llevó a Andrew y Kathleen Booth a publicar el libro Automatic digital calculators (1953).

Kathleen lideró el desarrollo de programas para la traducción automática en Birkbeck; en aquel momento se trataba de una propuesta pionera para unas máquinas que estaban pensadas para realizar cálculos numéricos. El 11 de noviembre de 1955, el Laboratorio de Computación de Birkbeck realizó una demostración pública de traducción automática. Kathleen Booth escribió en su computadora (en francés):

C’est un exemple d’une traduction fait par la machine à calculer installée au laboratoire de Calcul de Birkbeck College, Londres.

(Este es un ejemplo de traducción realizada por la máquina de cálculo instalada en el laboratorio de computación de Birkbeck College, Londres).

Y la computadora imprimió (en inglés):

This is an example of a translation made by the machine for calculation installed at the laboratory of computation of Birkbeck College, London.

En 1958 Kathleen publicó el libro Programming for an automatic digital calculator.

La etapa canadiense

El matrimonio Booth realizó un trabajo sobresaliente en Birkbeck College, aunque pensaban que no se les estaba dando el crédito que merecían. Andrew solicitó en varias ocasiones que se creara una Cátedra permanente en Ciencias de la Computación, pero se la denegaron, a pesar de tener incluso una fuente de financiación concedida para sostenerla. Por ese motivo, en 1962, ambos renunciaron a sus puestos en ese centro y decidieron emprender una nueva vida en Canadá.

Comenzaron enseñando e investigando en la Universidad de Saskatchewan hasta 1972 y después en la Universidad de Lakehead hasta su jubilación en 1978.

Kathleen se mantuvo activa en su investigación sobre redes neuronales y, en 1993, publicó el artículo Using neural nets to identify marine mammals junto a su hijo Ian. Fue su último trabajo publicado; tenía 71 años.

Andrew Booth falleció en noviembre de 2009, con 91 años. Kathleen lo hizo casi trece años después, con 100 años de edad. Hizo historia en la teoría de la computación aunque su nombre apenas sea conocido.

Referencias

Sobre la autora: Marta Macho Stadler es profesora de Topología en el Departamento de Matemáticas de la UPV/EHU, y colaboradora asidua en ZTFNews, el blog de la Facultad de Ciencia y Tecnología de esta universidad

1 comentario

  • Avatar de Prof. Luis Guillermo Uribe C.

    Ref: Kathleen Britten, luego: de Booth.

    ERROR:, dice «…lenguaje ensamblador … traduce unos y ceros en instrucciones legibles por humanos…»

    Es EXACTAMENTE al revés: traduce instrucciones escrita en SIMBÓLICO, tanto para los Códigos de Operación como para los OPERANDOS, o VARIABLES: todo lo cual recibe una REPRESENTACIÓN ALFANUMÉRICA, INTELIGIBLE por humanos, tales como:
    MOV #5, Var1
    MOV #9, Var2
    ADD Var1, Var2, Result
    Call PRINT, Result

    El PROGRAMA ENSAMBLADOR traduce dicho código SIMBÓLICO, y produce y almacena INTERNAMENTE, en la Memoria del Procesador, el resultado de la conversión de dichas INSTRUCCIONES al conjunto de BITS, o DÍGITOS BINARIOS: Ceros y Unos, QUE ES LO ÚNICO QUE EL HARDWARE digital (digital por DÍGITOS) ENTIENDE; es decir, que si por…
    Ejemplo: ADD Var1, Var2, Result
    resulta en un código como:
    0100 01 10 00001010,
    que se almacena como:
    01000110
    00001010
    (8 BITS es UN BYTE, agrupación más elemental en los CPUs)
    A veces no se lo representa en Binario, sino en una forma COMPACTA: el HEXADECIMAL:
    46
    0A
    (4 es 0100, 6 es 0110,
    0 es 0000 y A es 1010)

    Saludos
    Prof. Luis Guillermo Uribe C.

    • Avatar de Roberto Benítez

      Me parece que el artículo en la parte de «…traduce unos y ceros en instrucciones legibles por humanos» se refiere a que se utilizan palabras que los humanos entienden para darle las instrucciones al ordenador, el cual traduce a ceros y unos dichas instrucciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.Los campos obligatorios están marcados con *