viernes, 4 de noviembre de 2022

Kathleen Booth. ASEMBLER LANGUAJE. pionera de la inteligencia artificial. CAYETANO ACUÑA VIGIL.

 Kathleen Booth creó el lenguaje ensamblador y fue pionera de la inteligencia artificial. 

(041122)


KATHLEEN BOOTH

Este fin de semana se ha conocido la noticia del fallecimiento, a finales de septiembre, de Kathleen Booth, pionera de la informática y creadora del lenguaje ensamblador. Nacida en Reino Unido en 1922 (muere, por tanto, centenaria), obtuvo un doctorado en Matemáticas Aplicadas en 1950, tras haber estudiado la arquitectura de computación de Von Neumann junto a su creador (John Von Neumann, sí, el del Proyecto Manhattan).

Kathleen ya había co-diseñado junto a su compañero de investigación y marido, Andrew Booth (sí, el del algoritmo de multiplicación de Booth), una de las primeras computadoras de la historia (ARC) y ambos decidieron incorporar las aportaciones de Von Neumann al diseño de ARC2.

La carrera de programador en 2017 y en el futuro (con Javier Santana)

Es triste codificar en ensamblador, pero más triste es recablear

Pero Kathleen hizo algo más: escribir un libro titulado 'Coding for A.R.C.' donde presentaba el primer 'lenguaje ensamblador' (decimos "el primer" porque el ensamblador no es multiplataforma: varía necesariamente según la arquitectura del chip usado).

Esta monja creó el lenguaje BASIC (y se convirtió en la primera doctorada en computación) 24 años después de entrar en el convento

EN GENBETA

Esta monja creó el lenguaje BASIC (y se convirtió en la primera doctorada en computación) 24 años después de entrar en el convento

Recordemos que, unos pocos años antes, durante la Segunda Guerra Mundial, los estadounidenses habían creado la computadora ENIAC, cuya programación se realizaba girando conmutadores y recableando físicamente elementos del ordenador. Por aquel entonces, el único "lenguaje" que le venía a alguien a la mente al hablar de estas máquinas era el binario.

Así que Kathleen ideó una manera de agrupar pequeños conjuntos de instrucciones en binario y vincularlos a un 'mnemónico', una instrucción escrita en texto [más o menos] 'comprensible para humanos' (aunque no especialmente intuitiva). Quedaban inaugurados así los lenguajes "de bajo nivel", que permiten ejercer un control directo sobre el hardware, un control que va diluyéndose según aumenta el 'nivel' del lenguaje (Ensamblador > C > JavaScript).

Ensamblador

Ejemplo de código en ensamblador (Loyola Marymount University)

Mucho GPT-3 de OpenAI, pero todo empezó con ella y sus colegas

Pero, incluso antes de inventar el ensamblador, en 1947, Kathleen Booth había puesto los ojos en otro campo de la computación que resulta complicado pensar siquiera que existiese en ese momento: el procesamiento de lenguaje natural (es decir, uno de los principales campos de la inteligencia artificial).

Dos décadas más tarde escribió otro libro, 'Automatic Digital Calculators', en el que describe algunos de los algoritmos en los que ella y sus compañeros habían estado trabajando con el objetivo de lograr traducciones técnicas precisas (calidad literaria al margen), abordando aspectos como el procesamiento de raíces y terminaciones de palabras.

Recordemos que, antes de que las primeras investigaciones sobre IA alcanzaran su techo a mediados de los 70 (el 'invierno de la IA') del que sólo se pudo empezar a salir a partir de mediados de los 90 con el uso de redes neuronales, hubo 20 años de significativos avances en el campo.

El primer lenguaje de programación de alto nivel data de la 2ª Guerra Mundial, pero no compiló ni una línea de código hasta los 70

El primer lenguaje de programación de alto nivel data de la 2ª Guerra Mundial, pero no compiló ni una línea de código hasta los 70

¿Y sabéis qué? Que nuestra protagonista también fue protagonista escribiendo el primer programa de simulación de una red neuronal: ya entonces (1958/59) sospechaba que la clave residía en imitar la forma en que las mentes animales reconocen patrones.

De hecho, cuando (40 años después) la IA se encontraba a las puertas de su reactivación científica y económica, Kathleen Booth firmó su último artículo académico junto a su hijo, Ian J. M. Booth, en el que seguía apostando por las redes neuronales: "Uso de redes neuronales para identificar mamíferos marinos" (1993, cuando ya tenía 71 años y llevaba década y media retirada).

https://www.genbeta.com/actualidad/kathleen-booth-creo-lenguaje-ensamblador-fue-pionera-inteligencia-artificial-ha-muerto-a-100-anos?fbclid=IwAR2KZJG41V7GBpCshDG99C71wAszLRsLvRA4Qhh0TyV_q53OkXswsH-LTS8

Computer Pioneer Kathleen Booth Dies At Age 100

Written by Sue Gee   

Sunday, 30 October 2022

Kathleen Booth, who died last month, had a remarkable career in which she achieved many firsts. She is credited with the first assembly language, founding and teaching in the first university computer science department and research into natural language translation and neural networks well ahead of her time.

If the name Kathleen Booth fails to ring any bells this is because her fame was eclipsed by her husband Andrew Booth. However, apart from the algorithm that bears his name, much of what he is remembered for was a joint enterprise. The fact that she co-designed and built the ARC, one of the very first operational computers, is recorded in our history article, Andrew Booth and the Forgotten Computers, but as far are Kathleen is concerned that is almost all that is said. This article hopes to redress the balance.

Kathleen Hylda Valerie Britten was born in Stourbridge, Worcestershire, a market town on the River Severn but during her teenage years attended King Edward VI High School for Girls in Birmingham which then, as now, had an outstanding academic record. She went on to obtain a BSc in Mathematics from Royal Holloway College, part of the University of London in 1944.

On graduation she spent two years at the Royal Aircraft Establishment in Farnborough as a Junior Scientific Officer carrying out structural tests on materials for use in aircraft manufacture and then in 1946 she joined a team of mathematicians under Andrew Booth at Birkbeck College undertaking calculations for the scientists working on the X-ray crystallography images which contributed to the discovery of the double helix shape of DNA. 

To help with the number-crunching involved Andrew Booth was intent on building a computing machine and had started on a design for the ARC, the  Automatic Relay Computer. This was no general-purpose computer. It was specifically designed to do Fourier synthesis, an essential step in determining a crystal’s structure and while it was Andrew's design it was Kathleen who did the construction, together with another female assistant, Xenia Sweeting.

Kathleen Booth

Kathleen Britten, Xenia Sweeting and Andrew Booth

working on ARC in December 1946

In a visit to the United States in 1946 to see the progress being made with computer technology, Andrew Booth met Warren Weaver of the Rockefeller Foundation, Jay Forrester, Vanavar Bush, Howard Aiken, and John Von Neumann - all leading lights in the US computer development.  Warren Weaver suggested that Booth pay a return visit in 1947 as a Rockefeller Fellow at an institution of his choice. He chose Princeton and Kathleen Britten accompanied him. When they arrived they found that actually very little was going on by way of computer construction but there was a lot of theory to absorb - in particular von Neumann architecture.

This new knowledge led to a redesign of the ARC, the ARC2, and two important papers about it -   General considerations in the design of an all-purpose electronic digital computer and Coding for A.R.C., the publication in which Kathleen first outlined her assembly language, or auto code, for ARC2. She also wrote the assembler for it this computer which was redesigned as the SEC (Simple Electronic Computer). 

Assembly language booth

In 1950, the year in which she and Andrew were married, Kathleen gained her PhD in applied mathematics. In 1953 they co-wrote Automatic Digital Calculators, which included the general principles involved in the new “Planning and Coding” programming style. Their next computer design was for the  All-purpose Electronic (X) Computer, where X could be replaced by the name of any sponsor who came up with the money to build one! The first was the British Rayon Research Association and so the APE(Rayon) Computer was built and operated successfully for the first time on 2nd May 1952.

To secure funding for their work on APE(C)X, the Booths again went to the Rockefeller Foundation, which provided it on condition that the computer worked with human languages as well as just mathematics. This machine translation in November 1955 was well ahead of its time, a remarkable feat for a machine with a tiny amount of memory:

NLP booth

Kathleen wrote her seminal book Programming for an Automatic Digital Calculator for the APE(C)X computers and it was published by Butterworth in 1958.

Still at Birkbeck, the previous year the Booths had co-founded the first university department for teaching computing. Then called the Department of Numerical Automation it is now the Department of Computer Science and Information Systems. It awarded the first Master's degree in this discipline to Norman Kitz who built the SEC and Kathleen taught programming to undergraduates - another first. 

Credit: CompSci Heroes 

In 1962, when a proposal to establish a chair of Computer Engineering at Birkbeck for Andrew Booth was thwarted, the Booths emigrated to Canada where Kathleen became a research fellow and lecturer at the University of Saskatchewan, and in 1965 director of a national project on machine translation of language. In 1972 the couple moved to Lakehead University, Ontario, where Kathleen was appointed professor of mathematics. Six years later they retired to Vancouver Island where they founded a computer consulting business.

Kathleen remained active into her retirement, continuing with her research into neural networks, starting while still at Birkbeck, where she had devised a program to simulate the ways animals recognize patterns and had also worked in a neural network for character recognition. In 1993 with her son Ian, she co-authored a paper Using neural nets to identify marine mammals, a couple of decades before the re-emergence of interest in this area.

Kathleen booth More Information

Kathleen Booth, a computer pioneer who made a major breakthrough in programming – Telegraph obituary 

Kathleen Booth: Assembling Early Computers While Inventing Assembly (Hackaday)

A short history of Computer Science at Birkbeck

Booth & Britten Write the Earliest Program Leading toward Machine Translation; and a Pioneering Description of a Stored-Program Computer

Related Articles

Andrew Booth and the Forgotten Computers

Von Neumann Architecture

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed, and follow us on Twitter, Facebook or Linkedin.

https://www.i-programmer.info/news/82-heritage/15831-computer-pioneer-kathleen-booth-dies-at-age-100.html

Kathleen Booth — Machine Learning Pioneer

Looking at the work of Kathleen Booth shows a person heavily interested in improving the usability of computers. She wrote the first assembly language, co-authored one of the first books about computer programming, and was a university lecturer.

Being the author of the first assembly language is quite a feat already, but Kathleen Booth didn’t stop there. The more I dug through some of the papers she co-authored with her husband Andrew Booth, the more I was blown away by the amazing work of a woman whose achievements and inventions are almost unknown to the majority of programmers today.

The Perfect Team

The Booth couple made the perfect team: While her husband designed the computers, she was doing all the programming, devising methods to work effectively with the computers. This prompted her to develop many techniques that have been influential to this day. Despite that, some of those techniques seemed so obvious for them that they didn’t publish papers long after they were widely adopted.

Binary Partitioning

This is what they wrote about a fundamental technique like Binary Partitioning:

The lookup method used from the first was binary partitioning — a technique that we regarded as so obvious that we did not deem it worth publication until we discovered that several major computer groups were using sequential search strategies.

For them, there was no need to even write a paper about something so obvious!

Asynchronous and Synchronous programming

With the advent of tools like node.js, asynchronous programming became a technique known almost by every web dev out there. What caught me totally by surprise was to find descriptions of these techniques in a paper she co-authored back in 1947. Considering that she was the programmer in the Booth family, we could assume that she came up with these techniques herself.

Extract from the paper General considerations in the design of an all-purpose electronic digital computer by Booth & Booth.

Machine Learning & Artificial Intelligence

In 1953 the couple published a book called Automatic Digital Calculators, where not only did they explain the design of a computer, but also presented techniques about how to program them.

The last chapter is called Some Applications of Computing Machines, which includes examples like these:

Linguistic processing, where they propose what are the beginnings of Machine Translation. This seems like a small contribution, but as they explain in their writings, computers were used mostly for numeric computation, so doing linguistic work was a new thing.

They published papers later in Canada about some experiments they did translating English into French. English-French Translation on a Computer. Besides machine translation, they wander into areas like Stylistic Analysis used as a basis for deciding the date or authenticity of literary works.

Computer games, here they propose that computers could also be used for playing games, something quite obvious today, but not as evident back then. In this chapter they explain techniques for implementing a game of Tic-Tac-Toe (which they call noughts & crosses). They also discuss the techniques known back then for writing programs that could play checkers and chess.

Machine Learning and Artificial Intelligence, in this last section they explain how to produce a conditioned reflex in a digital calculator.

Extract from the book Automatic Digital Calculators by Booth & Booth

What seems more like a nice hypothesis than an actual practical problem, becomes a reality in the time between the first and the second editions of the book, where they manage to implement their ideas on an IBM machine.

Possibly the most exciting area of computer research at the present time is that of artificial intelligence. [These ideas that we] first put forward […] in 1952, seem to be those most in favor at the present time. — Kathleen Booth

To finish this article I’d like to echo the sentiment of Kathleen and her husband, as it appears in the preface of the third edition of their book. Despite all the highly innovative work they did during their careers, one can still notice that they didn’t get the recognition they deserved. This is what they have to say about the state of Artificial Intelligence in the ‘60s.

Extract from the book Automatic Digital Calculators by Booth & Booth

As the old adage says, everything old is new again. I hope this article is a little contribution to highlight the life and work of Kathleen Booth and her husband, pioneers of the computing age.

From December 1st until December 24th we plan to release one article each day, highlighting the life of one of the many women that have made today’s computing industry as amazing as it is: From early compilers to computer games, from chip design to distributed systems, we will revisit the lives of these pioneers.

Each article will come with an amazing illustration by @SebastianNavasF.

If you want to see this series to become a book with expanded articles and even more illustrations by Sebastián, then subscribe to our newsletter below.

Credits

References:

Booth, Andrew D., and Britten, Kathleen H. V.: General considerations in the design of an all-purpose electronic digital computer. 2nd. Edition, August 1947. Institute for Advanced Study, Princeton, N.J. http://www.mt-archive.info/Booth-1947.pdf

Booth, Andrew D., and Booth, Kathleen H.V. Automatic Digital Calculators. https://archive.org/details/AutomaticDigitalCalculators

Booth, Andrew D., and Booth, Kathleen H.V. The Origins of MT. http://www.mt-archive.info/MTS-1997-Booth.pdf

Dufresne, Steven. Kathleen Booth: Assembling Early Computers While Inventing Assembly. https://hackaday.com/2018/08/21/kathleen-booth-assembling-early-computers-while-inventing-assembly/

https://en.wikipedia.org/wiki/Kathleen_Booth

 


No hay comentarios:

Publicar un comentario

MATEO EL EVANGELISTA_ BITÁCORA DE CAYETANO ACUÑA

  MATEO EL EVANGELISTA. MATEO EVANGELISTA Mateo el Evangelista , en   hebreo   מתיו הקדוש (también conocido como   Mateo Leví ,   Leví de Al...