IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Kathleen Booth
Pionnière de l'informatique britannique inventrice du langage assembleur, nous a quittés à l'âge de 100 ans. Elle a contribué au développement de trois ordinateurs (ARC, SEC et APEXC)

Le , par Stéphane le calme

66PARTAGES

39  0 
Le professeur Kathleen Booth, l'une des dernières pionnières de l'informatique britannique, est décédée. Elle avait 100 ans. Elle a conçu le premier langage assembleur et le programme assembleur et l’autocode des premiers ordinateurs à Birkbeck College. Elle a contribué au développement de trois ordinateurs, à savoir ARC (Automatic Relay Calculator), SEC (Simple Electronic Computer) et APEXC (All Purpose Electronic X-Ray Computer).

Kathleen Hylda Valerie Britten est née dans le Worcestershire, en Angleterre, le 9 juillet 1922. Pendant la Seconde Guerre mondiale, elle a étudié à Royal Holloway, Université de Londres, où elle a obtenu un BSc (Bachelor of Science) en mathématiques en 1944. Après avoir obtenu son diplôme, elle est devenue une junior responsable scientifique au Royal Aircraft Establishment, un organisme de recherche à Farnborough. Deux ans plus tard, elle a déménagé au Birkbeck College, d'abord comme assistante de recherche, puis comme chargée de cours puis comme chercheuse.

Elle a également travaillé à la British Rubber Producers' Research Association (BRPRA), où elle a rencontré et travaillé avec le mathématicien et physicien Andrew Donald Booth, qui est devenu plus tard son mari. Après avoir étudié avec le cristallographe aux rayons X, le professeur JD Bernal - inventeur de la sphère de Bernal - A D Booth travaillait sur des structures cristallines à l'aide de données de diffraction des rayons X et trouvait les calculs manuels très fastidieux*; il a construit un ordinateur analogique pour automatiser une partie de cela.

En 1946, Britten et Booth ont collaboré à Birkbeck sur un tout premier ordinateur numérique, le calculateur de relais automatique (ARC), et ont ainsi fondé ce qui est aujourd'hui le département d'informatique et de systèmes d'information de Birkbeck.

L'ARC a été construit à Welwyn Garden City, à proximité du siège de la BRPRA. A D Booth l'a conçu, mais Kathleen Britten et sa collègue assistante de recherche Xenia Sweeting ont construit le matériel. Bernal a obtenu un financement de la Fondation Rockefeller pour que Booth et Britten visitent l'Institute of Advanced Study de Princeton, où Booth a rapporté que seul l'ami de Bernal, John von Neumann, leur avait donné du temps. Von Neumann a expliqué son concept de ce qu'on appelle maintenant l'architecture informatique de von Neumann.

Booth et Britten sont retournés au Royaume-Uni et ont repensé leur calculatrice en fonction de ces idées, ce qui a conduit à l'ARC2 et, ce faisant, à inventer la première mémoire de batterie pour fournir suffisamment de stockage pour contenir à la fois les informations et les données du programme. Construire l'ARC2 à partir de relais s'est avéré trop compliqué, c'est pourquoi en 1948, Booth et Britten sont passés à l'ordinateur électronique simple (SEC), puis à l'ordinateur à rayons X électronique polyvalent ou APE (X) C. Vous pouvez essayer l'APE(X)C dans l'émulateur MESS.

La conception APE (X) C a été commercialisée et vendue sous le nom de HEC par la British Tabulating Machine Co Ltd, qui est finalement devenue ICL. Ci-dessous, une vidéo sur le HEC1.


En 1950, Kathleen et Andrew se sont mariés, la même année où elle a obtenu un doctorat en mathématiques appliquées, toujours à l'Université de Londres. Pour obtenir un financement supplémentaire pour leur travail, les Booth se sont à nouveau adressés à la Fondation Rockefeller, qui l'a fourni à condition que l'APE (C) X travaille avec les langages humains ainsi que les mathématiques uniquement. Le résultat fut une démonstration de traduction automatique en novembre 1955.


En plus de construire le matériel des premières machines, elle a écrit tous les logiciels des machines ARC2 et SEC, inventant ainsi ce qu'elle a appelé la Notation Contractuelle. Ce langage, à travers l'évolution et les contributions d'autres, est aujourd'hui connu sous le nom de langage d'assemblage (ou langage assembleur). Elle discute également du fonctionnement synchrone par rapport au fonctionnement asynchrone. Son livre de 1958, Programming for an Automatic Digital Calculator, a été l'un des premiers sur la programmation écrit par une femme. La même année, elle a commencé à travailler avec les réseaux de neurones, également le sujet de son dernier article, Utiliser des réseaux de neurones pour identifier les mammifères marins, co-écrit avec son fils le Dr Ian JM Booth et publié en 1993.

La famille Booth a déménagé au Canada au début des années 1960, où Kathleen et Andrew ont continué à travailler dans le milieu universitaire; elle a pris sa retraite à la fin des années 1970.

Kathleen Booth est décédée le 29 septembre 2022 et laisse dans le deuil une fille ainsi que son fils.

Assembleur

Un langage d'assemblage ou langage assembleur est un langage bas niveau qui représente le langage machine sous une forme lisible par un humain. Les combinaisons de bits du langage machine sont représentées par des symboles dits « mnémoniques », c'est-à-dire faciles à retenir. Le programme assembleur convertit ces mnémoniques en langage machine, ainsi que les valeurs (écrites en décimal) en binaire et les libellés d'emplacements en adresses, en vue de créer par exemple un fichier objet ou un fichier exécutable.

Dans la pratique courante, le même terme assembleur est utilisé à la fois pour désigner le langage d'assemblage et le programme assembleur qui le traduit. On parle ainsi de « programmation en assembleur ».

Les langages d'assemblages ont éliminé une grande partie des erreurs commises par les programmeurs de la première génération d'ordinateurs, en les dispensant de mémoriser les codes numériques des instructions et de faire des calculs d'adresses. La programmation en assembleur était alors utilisée pour écrire toutes sortes de programmes.

Au sujet de ce langage, Chrtophe notait par exemple que :

Citation Envoyé par Chrtophe
L'assembleur n'est presque plus utilisé sauf pour des choses bien précises notamment la programmation de micro contrôleurs, le déboguage, ou la création de compilateurs.

Il est à noter que quand on compile un programme, celui-ci est transformé en code assembleur, puis enfin en code machine.

En mode graphique par exemple, pour afficher une lettre, tu dois littéralement la dessiner (sauf si tu appelles une fonction système, mais là autant utiliser le C, c'est plus facile à écrire). Des compétences en électronique sont un plus, et au moins une bonne connaissance de l'architecture de l'ordinateur, l'assembleur est très proche de l’électronique de la machine.


Quelques instructions de base

Chaque instruction assembleur a une équivalence binaire direct. Le processeur peut ainsi comprendre ces instructions.

Voici quelques exemples d'instructions de base pour le processeur Intel 8086 :
  • MOV destination source : déplace une valeur fixe ou celle d'un registre dans un autre,
  • INC registre : additionne 1 à la valeur d'un registre,
  • NEG registre : change le signe de la valeur stockée dans un registre,
  • IMUL destination source : multiplie les valeurs et stocke le résultat dans le premier registre.

Démonstration de traduction automatique (novembre 1955)
émulateur MESS

Et vous ?

Aviez-vous déjà entendu parler du professeur Kathleen Booth ?
Connaissez-vous le langage assembleur ? L'avez-vous déjà utilisé à des fins d'études, de projets personnels ou professionnels ? Qu'en pensez-vous ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de kain_tn
Expert éminent https://www.developpez.com
Le 31/10/2022 à 17:25
Une grande Dame de l'informatique qui est partie.

RIP, Kathleen.
6  0 
Avatar de ZJP972
Membre régulier https://www.developpez.com
Le 01/11/2022 à 0:22
Morte à...100 ans. C'est du binaire.
Merci Madame.
6  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 01/11/2022 à 8:01
Aviez-vous déjà entendu parler du professeur Kathleen Booth ?
Je ne la connaissais pas.

Il y a tellement peu de femmes dans l'informatique que c'est bien d'en parler, surtout qu'il s'agit pas moins que de l'inventrice de l'assembleur.
2  0 
Avatar de LeBreton56
Membre régulier https://www.developpez.com
Le 08/11/2022 à 14:47
Connaissez-vous le langage assembleur ? L'avez-vous déjà utilisé à des fins d'études, de projets personnels ou professionnels ? Qu'en pensez-vous ?
Ce fut mon premier langage informatique. Et si tous les assembleurs se ressemblaient chacun portait et porte toujours les spécificités du micro-Processeur ou microcontrôleur.
À cette époque reculée il était de bon ton de maitriser le z80 le 8086, le 6502 et autres 8 bits puis 16bits.
Jusque dans les années 2005 je l'utilisais encore couramment sur des microcontrôleurs embarqués, même si le C et le C++ ont, peu à peu, remplacé l'Assembleur dans ces projets embarqués, il était courant de venir "optimiser" une routine pour des raisons de vitesse ou de synchro sur des interruptions machine.

C'était le temps où l'on savait ce que chaque ligne de code, chaque instruction faisait.

Aujourd'hui on pythonise à tour de bras et la machine fais ce qu'elle peut.
Bon là c'est le vieil antédiluvien qui parle.

Merci à Kathleen Booth pour tous les moments de plaisir (mais aussi de nuits de galère ), qui du fait de son travail, m'ont été offerts.
2  0 
Avatar de CoderInTheDark
Membre émérite https://www.developpez.com
Le 15/11/2022 à 8:25
Je ne la connaissais pas.
Il y a beaucoup de grande dame dans l'informatique Lovelace, ...

J'ai fait de l'assembleur 68000 sur Amiga 500, après le basic locomotive sur CPC.
Car je voulais programmer des petits jeux vidéos, et être demomaker mais j'étais un gros lamer
J'ai quand même fait une intro potable.

J'ai jeté l'éponge avec l'amiga 1200, et son 68020, trop l'arnaque le 1200, ils auraient pu en mettre un peu plus sous le capot
Je regrette de ne pas avoir pris un disque dur avec, et d'avoir été sur le net avec, ça devait être épique.

On nous disait à l'époque que les ordinateurs était poussif et qu'il fallait économiser les cycles machine, pour avoir des animations fluides en autre.
Par exemple additionner un nombre à lui-même plutôt que le multiplier par 2, ou utiliser le décalage de bit...
J'avais la bible de l'Amiga à côté de moi avec un marque page à la page du tableau des registres, $dff180 pour la couleur de fond je crois

Mais je ne suis pas maso, ça a été une bonne école, mais qu'est ce que c'était lourd à lire et surtout à relire.

start:

move #0,d0;
move #10, d1;

loop:

add 1, d0;

cmp d0, d1;
bne loop;

rts;

tout ça pour faire une boucle arfff
1  0 
Avatar de Kannagi
Expert éminent sénior https://www.developpez.com
Le 18/11/2022 à 4:02
Citation Envoyé par CoderInTheDark Voir le message

start:

move #0,d0;
move #10, d1;

loop:

add 1, d0;

cmp d0, d1;
bne loop;

rts;
J’espère que tu ne faisais pas des boucles comme ça
Sur M68000 tu avais l'instruction dbne qui permettait de faire des boucle for
(qui est bien plus rapide que CMP+BNE+ADD)

Donc cela donne :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
start:
move #10, d0;

loop:

dbne d0,loop;

rts;
Sinon ,même si l'assembleur est lourd à écrire , ce n'est pas ce qui me dérange, je trouve encore les processeur 8 ou 16 bits assez accessible et agréable à programmer en assembleur.
Plus les processeurs sont devenu bien trop complexe à programmer , et les compilateurs ont commencé à être bien plus performant (de nos jour battre GCC sur du x86 , c'est très très compliqué ).
1  0 
Avatar de CoderInTheDark
Membre émérite https://www.developpez.com
Le 18/11/2022 à 8:43
T'es matinal, mon code t'empeche de dormir :;D

Bah si j'ai fait des horreurs pareilles , pardon aux familles tout ça beuahhh.
De toute façon il n'y a plus de preuves

Mais j'étais jeune j'avais 13 ans quand j'ai commencé l'assembleur avec k-seka, juste après le basic.
Et j'ai pas été aidé par la documentation.
J'ai utilisé les bouquins Micr* Appli** traduit des livres du databecker pas toujours bientraduits

Et il n'y avais pas d'internet pour se confronter.

[QUOTE=Kannagi;11894397]J’espère que tu ne faisais pas des boucles comme ça
1  0 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 31/10/2022 à 15:28
100 ans c'est énorme ! Ca fait rêver
0  0 
Avatar de Claude40
Membre actif https://www.developpez.com
Le 08/11/2022 à 10:50
Bonjour,
Au millieu des années 1980 (voila donc plus de 35 ans !) j'ai travaillé sur des programes applicatifs écrits soit en assembleur, soit en cobol, soit en Pl1 ou encore en fortran. Il s'agissait des résoudre les incompatibilités (temporaires) au moment d'un changement total de système (passage du DOS à MVS, sur les calculateurs IBM). Je me rapproche de plus en plus des 100 ans !
0  0 
Avatar de Kannagi
Expert éminent sénior https://www.developpez.com
Le 12/11/2022 à 12:43
Citation Envoyé par LeBreton56 Voir le message

C'était le temps où l'on savait ce que chaque ligne de code, chaque instruction faisait.

Aujourd'hui on pythonise à tour de bras et la machine fais ce qu'elle peut.
Bon là c'est le vieil antédiluvien qui parle.
J'ai pas mal programmer sur le 6502 , z80 , M68000 en assembleur.

Mais je ne pense pas que ça soit un mal que les compilateurs reprenne le relais , non seulement ils sont bien meilleurs que nous (et j'insiste là dessus du GCC sur du x86 avec du les bonnes option de compilation) , il est quasi imbattable.
Mais aussi que les processeurs sont devenu bien trop complexe pour s'amuser à jouer en asm dessus.

Après c'est à double tranchant ,c'est bien plus compliqué d'apprendre le hardware maintenant que à l'époque.
De nos jours, ça prend littéralement 1 journée pour comprendre comment fonctionne une vielle machine et ces I/O , c'est vraiment pas le cas sur un SoC moderne...
0  0