Kathleen Booth, la First Lady dell’Assembly

RetroMagazine nr. 40– Anno: 2022 – Autore: Alberto Apostolo

Fig. 1: da sinistra a destra: K. Booth, X. Sweeting, A. Booth

Lo scienziato britannico David Wheeler (1927.02.09 – 2004.12.13) è ufficialmente accreditato (dalla IEEE Computer Society) come il creatore del primo assemblatore nel 1948. Ma nell’Agosto del 1947, la scienziata britannica Kathleen Britten (assieme al futuro marito Andrew Booth) pubblicò un report nel quale anticipava il concetto di “linguaggio assembly”, da lei chiamato “Contracted Notation” (Notazione Contratta), per codificare programmi sul computer ARC2 (Automatic Relay Calculator 2).

Kathleen Hylda Valerie Britten (poi Booth) nacque il 9 Luglio 1922 a Stourbridge (Worcestershire, U.K.). Conseguì la laurea in Matematica presso l’Università di Londra nel 1944 e il dottorato in matematica applicata nel 1950 presso la stessa istituzione. Dopo l’università, dal 1944 al 1946 divenne Junior Scientific Officer presso il Royal Aircraft Establishment di Farnborough, un istituto di ricerca britannico. Nel 1946 iniziò a lavorare come assistente di ricerca presso il Birkbeck College (dove in seguito divenne docente e Research Fellow) e Reaserch Scientist presso la British Rubber Producer’s Research Association (BRPRA). Durante il periodo trascorso alla BRPRA conobbe e poi sposò, nel 1950, Andrew Donald Booth, ed ebbe due figli.

Fig. 2 –


Andrew Donald Booth era un ingegnere elettrotecnico, fisico e informatico che aveva iniziato a lavorare su un computer chiamato Automatic Relay Computer, un primo computer elettromeccanico. L’ARC fu costruito a Welwyn Garden City nelle immediate vicinanze della BRPRA. Insieme a Xenia Sweeting (un’altra assistente), Kathleen collaborò alla costruzione di maggior parte della macchina, cosa che significava possedere anche profonde conoscenze dell’hardware (Fig.1). Il progetto prevedeva 600 relè e 100 tubi a vuoto. I tubi a vuoto controllavano il flusso della corrente elettrica attraverso il calcolatore.
Nel 1947, Kathleen e Andrew si recarono in viaggio negli Stati Uniti. A Princeton (presso l’Institute for Advanced Study) incontrarono John Von Neumann, autore di “First Draft of a Report on the EDVAC” (pubblicato il 30 Giugno 1945) nel quale era esposta quella che sarebbe passata alla Storia come “Architettura di Von Neumann” (Fig.2).

Fig. 3


Dopo il viaggio, Andrew Booth decise di riprogettare l’ARC (rinominandolo ARC2) per incorporare l’architettura di Von Neumann. ARC2 utilizzava 800 relè contro 600, il che consentiva una maggiore potenza di elaborazione, circa il 33% in più. Inoltre disponeva del primo dispositivo di archiviazione elettronica rotante del mondo, un tamburo magnetico inventato dallo stesso Andrew Booth (Fig.3). Il computer entrò ufficialmente in funzione il 12 maggio 1948.
Nel 1947 i futuri coniugi Booth pubblicarono due report. Il primo era “General considerations in the design of an all-purpose electronic digital computer” (pubblicato nell’Agosto del 1947) nel quale si descrivevano i requisiti di un’architettura Von Neumann, comprese le diverse opzioni per la memoria. In esso Kathleen descriveva la sua invenzione da lei chiamata “Contracted Notation” precursore del “linguaggio assembly” (Fig. 4), nata per programmare i computer senza la necessità di dare istruzioni in codice macchina con 1 e 0 espliciti. Sorprendentemente (Fig.5), in una sezione redatta sempre da Kathleen, fu descritta la possibilità di effettuare operazioni sincrone o asincrone (decenni prima delle pubblicazioni di altri comparse solo alla metà degli anni 80 del XX secolo)[Pri19]. In apparenza, una sorta di esecuzione in parallelo di più istruzioni in un programma.

Fig. 4 – Il MOS VIC-II, chip grafico del C64 (foto: Christian Taube – fonte: Wikimedia Commons)

Il secondo report era “Coding For A.R.C.” (pubblicato nel Settembre del 1947), contenente il passo successivo alla “Contracted Notation”, dove si descriveva un primo dettagliato “linguaggio assembly” per ARC2.
Dal 1946 al 1953 furono costruite tre macchine: ARC (Automatic Realy Computer), SEC (Simple Electronic Computer), APE(X)C (All-Purpose Electronic (X) Computer). La “X” indicava un eventuale sponsor per la realizzazione del progetto. Nel 1951, la British Rayon Research Association sponsorizzò la costruzione del computer. Andrew Booth si occupava dell’hardware mentre Kathleen era incaricata della programmazione (Fig.6).
Nel 1953 i Booth pubblicarono “Automatic Digital Calculators” che illustrava vari argomenti come l’introduzione alle macchine da calcolo, l’era meccanica del calcolo, l’arrivo delle tecniche elettroniche e la progettazione di un sistema di calcolo. Nel libro, Kathleen spiegò lo stile diprogramamzione “Plannig and Coding”. Inoltre nel capitolo furono descritte alcune applicazioni pittosto all’avanguardia come la Cristallografia ai Raggi X, l’elaborazione del linguaggio con il computer, i giochi di strategia, il Machine Learning e l’Intelligenza Artificiale (!!!).

Fig. 7

Nel 1957, i Booth fondarono la School of Computer Science and Information Systems al Birkbeck College, insieme a J.C. Jennings. L’anno successivo (1958) Kathleen Booth scrisse un libro su come programmare il computer APE(X)C e tenne un corso di programmazione. Nel biennio 1958/59, Kathleen Booth si occupò di Reti Neurali e della simulazione di un cervello. Nel biennio 1959/60 progettò un programma di una rete neurale per il riconoscimento dei caratteri. Il lavoro al Birkbeck college durò dal 1946 al 1962.
Nel 1962, a causa del mancato conferimento di una cattedra ad Andrew Booth, Kathleen ed Andrew si dimisero dal Birkbeck College. La famiglia Booth si trasferì in Canada per lavorare all’Università di Saskatchewan e poi alla Lakehead University nel 1972. Kathleen Booth si ritirò dalla Lakehead nel 1978. Il suo ultimo lavoro fu pubblicato nel 1993, all’età di 71 anni. Intitolato “Using neural nets to identify marine mammals” (Utilizzo di reti neurali per l’identificazione dei mammiferi marini), fu redatto da lei e da uno dei figli, Ian J. M. Booth. Kathleen rimase sempre legata al marito Andrew (Fig.7), fino alla morte di lui avvenuta il 29 Novembre 2009.

Andrew Donald Booth nacque a Weybridge (Surrey, U.K.) l’11 Febbraio 1918. Dopo un periodo come studente di Matematica a Cambridge nel 1937/38 (senza laurearsi), conseguì una laurea (come esterno) alla Università di Londra mentre lavorava nel settore industriale. Durante la Seconda Guerra Mondiale, lavorò a Coventry in una azienda del settore aeronautico e in loco installò un dipartimento per l’ispezione ai Raggi X dei componenti dei motori aeronautici. In seguito conseguì un dottorato presso l’Università di Birmingham. Nel 1946 fu assunto dal Dipartimento di Fisica al Birkbeck College di Londra, dove costruì diversi computer in oltre dieci anni di lavoro. Egli fu un membro del primo Council of British Computer Society quando fu istituito nel Giugno 1957. Nello stesso anno iniziò l’insegnamento di Automazione Numerica alla Birkbeck, uno dei primi corsi di calcolo. Si trasferì in Canada nel 1962 e andò in pensione nel 1978. Morì il 29 Novembre 2009. A lui è dovuta l’invenzione del primo tamburo magnetico rotante e di un ingegnoso metodo per la moltiplicazione di due numeri binari (moltiplicatore di Booth) [Lav21].

Il moltiplicatore di Booth [Lav21] segue lo stesso usuale metodo per la moltiplicazione lunga in base 10, sommando i prodotti parziali. Comunque utilizza un “trucco”: per moltiplicare con una stringa di “9” è possibile spostarsi di un certo numero di posizioni e sottrarre il moltiplicatore dal risultato. L’approccio funziona persino meglio in binario, dove consiste in una semplice regola.
La procedura è la seguente:
(1) esaminare ogni coppia di digit nel moltiplicatore, partendo dal meno significativo e creando la prima coppia aggiungendo uno zero fittizio all’estremo meno significativo. Poi se la coppia è 01 allora sommare il moltiplicando. Invece, se la coppia è 10 sottrarre il moltiplicando. Nei restanti casi non fare operazioni.
(2) spostare il prodotto parziale di un posto a destra ed esaminare la successiva coppia di digit.
(3) ripetere (1) e (2) per ogni digit del moltiplicatore.

Bibliografia
Bibliografia
[Lav21] S.Lavington, “Alan Turing and His Contemporaries”, BCS Learning & Development Limited, 2021.
[Pri19] J.Priddy, “Kathleen Booth”, 2019-05-06,
https://medium.com/@BatmanPriddy/kathleen-booth-7bb303fb15be [consultato il 2022/08/08]
[Wik22] https://en.wikipedia.org/wiki/Kathleen_Booth

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.