Cette annĂ©e, la date de la journĂ©e Ada Lovelace, une journĂ©e dont lâobjectif est dâaccroĂźtre la visibilitĂ© des contributions des femmes dans les domaines scientifiques, technologiques, mathĂ©matiques et ingĂ©nierie (STEM), est le 15 octobre 2025.
Pour lâoccasion, en 2023, LinuxFr avait consacrĂ© une dĂ©pĂȘche Ă Lorinda Cherry, Evi Nemeth et Jude Milhon. En 2024, cela avait donnĂ© lieu Ă une mini-sĂ©rie sur la participation des femmes Ă la conquĂȘte de lâespace. Cette annĂ©e, on se penchera sur les compilateurs, créés par Grace Hopper, et qui ont valu Ă Frances Allen un prix Turing en 2006 et on dressera le portrait de Delphine Demange, laurĂ©ate du prix Gilles Kahn 2013.

Sommaire
- Quâest-ce quâun compilateur ?
- Delphine Demange : comment vérifier que les compilateurs font leur travail correctement
- Quelques autres sources dâinformation
- Questions et remerciements
Quâest-ce quâun compilateur ?
La naissance des compilateurs
Le premier compilateur, il sâappelait « translator » (traducteur) Ă lâĂ©poque, a Ă©tĂ© inventĂ© par Grace Murray Hopper pour lâUNIVAC 1 en 1951, lâA-O System. Soit aprĂšs la sortie de lâIBM 604 (1948), avant celle de lâIBM 650 (1954) et un peu avant le FORTRAN, langage compilĂ©, créé vers 1953 par John Backus pour lâIBM 701 et lancĂ© en 1957. La mĂȘme annĂ©e oĂč IBM embauche Frances Allen pour former des scientifiques et des ingĂ©nieurs rĂ©ticents Ă lâutilisation du langage. Elle sera, en 2006, la premiĂšre femme Ă obtenir un prix Turing. Elle raconte, dans les Annals of History of Computing (Volume 6, N°1, janvier 1984) que :
Lâune des façons dont le laboratoire de recherche a convaincu les gens Ă utiliser ce langage a Ă©tĂ© dâimposer son utilisation via un rĂšglement.
Elle ajoutera :
le compilateur FORTRAN a Ă©tabli la norme en matiĂšre dâefficacitĂ© du code objet. Mais surtout, il a dĂ©montrĂ© la faisabilitĂ© de lâutilisation des langages de haut niveau. Lorsque jâai enseignĂ© le FORTRAN en 1957, lâutilisation de ce langage a rencontrĂ© une forte rĂ©sistance. Cette rĂ©sistance a rapidement Ă©tĂ© Ă©rodĂ©e par le type de code produit par le compilateur.
John Backus, qui trouvait par ailleurs que Grace Murray Hopper Ă©tait difficile Ă Ă©galer, dĂ©taillait dans ces mĂȘmes annales les auteurs et lâautrice du compilateur. Peter Sheridan avait Ă©crit la section 1 qui analysait les expressions algĂ©briques, les traduisait en code et optimisait ce code. Pour la section 2, Harlan Herrick avait inventĂ© lâinstruction DO, rĂ©digé : « la partie de la section 1 qui regroupe toutes les informations sources non utilisĂ©es dans les expressions algĂ©briques dans des tableaux nĂ©cessaires aux sections suivantes. ».
Câest Ă©galement Ă Herrick que lâon doit lâintroduction des mots clĂ©s GO TO ! Roy Nutt a conçu la majeure partie du langage dâentrĂ©e/sortie et rĂ©digĂ© la partie de la section 1 qui traduisait les instructions dâE/S en boucles DO. Il a Ă©galement rĂ©digĂ© la section 6, qui assemblait le programme symbolique final et complĂ©tait le traitement des instructions dâE/S. Câest Ă©galement Ă Nutt que lâon doit lâintroduction de lâinstruction FORMAT. Bob Nelson et Irv Ziller ont rĂ©digĂ© la section 2, qui sâest avĂ©rĂ©e ĂȘtre la plus grande section du compilateur. Elle analysait les rĂ©fĂ©rences aux tableaux dans les boucles DO et produisait un code hautement optimisĂ© pour le reste du programme source. Leur travail a eu un impact important sur le niveau global dâoptimisation que jâai mentionnĂ© prĂ©cĂ©demment. Dick Goldberg a rĂ©digĂ© la section 3, qui rassemblait le code compilĂ© par les sections 1 et 2 et produisait d'autres informations nĂ©cessaires aux sections suivantes. Les gens continuaient Ă se concerter et Ă demander aux auteurs des sections prĂ©cĂ©dentes de produire un peu plus, quelques tableaux supplĂ©mentaires dont ils avaient finalement besoin. Dick a Ă©galement jouĂ© un rĂŽle important dans le dĂ©bogage de la section 5. Lois Haibt (en) a rĂ©digĂ© la section 4, qui effectuait une analyse statistique de la frĂ©quence d'exĂ©cution [âŠ] Ici, la section 4 a Ă©galement prĂ©parĂ© de nombreux tableaux pour la section 5, si je comprends bien. Sheldon Best a Ă©crit la section 5, qui a converti le programme utilisant de nombreux registres d'index en un programme en utilisant trois. Ses mĂ©thodes ont eu un impact considĂ©rable sur les travaux ultĂ©rieurs dans ce domaine et ont eu un effet majeur sur le niveau d'optimisation du compilateur. Enfin, David Sayre a rĂ©digĂ© un manuel du programmeur exceptionnellement clair et concis et a aidĂ© Dick Goldberg Ă dĂ©boguer la section 5.

SchĂ©ma de la structure du compilateur de lâordinateur IBM 704 adaptĂ© de celui fait par Frances Allen dans les « Annals of History of Computing », Volume 6, N°1, janvier 1984 (page 24).
De leur cĂŽtĂ©, les SoviĂ©tiques, qui fabriquaient aussi des ordinateurs, utilisaient Ă©galement des compilateurs. Dans son article sur les ordinateurs soviĂ©tiques, Yves LogĂ© rapporte quâils utilisaient, en 1955, les langages de compilation : PP2 â PP et BESM. Le BESM Ă©tant un ordinateur sorti en 1953. La fondatrice de la programmation thĂ©orique en Ukraine, Katerina Yushchenko (en), y a fort probablement contribuĂ©.
à quoi ça sert ?
En août 2001, dans un entretien (en) avec Janet Abbate qui lui demandait comment elle définirait un compilateur, Frances Allen répondait :
Je pense quâun compilateur sert Ă traduire ce que lâutilisateur de lâapplication [âŠ] demande [âŠ] Ă la machine de maniĂšre Ă obtenir la bonne rĂ©ponse, mais aussi Ă utiliser au mieux les ressources de la machine. Câest ça, lâoptimisation. On peut se contenter de transposer les choses sans tirer parti des registres et de nombreuses autres unitĂ©s de calcul, mais cela ne serait pas aussi efficace. Lâoptimisation consiste donc Ă tirer parti des ressources de la machine et Ă trĂšs bien connaĂźtre cette derniĂšre. Câest en quelque sorte combler un fossĂ©, afin que lâutilisateur nâait pas besoin de tout savoir !
Plus gĂ©nĂ©ralement, un compilateur est dĂ©crit comme un programme dans un langage de haut niveau qui traduit le code-source en code objet pour le rendre exĂ©cutable en dĂ©tectant les erreurs et en lâoptimisant par la mĂȘme occasion.

Le code source est envoyé au compilateur qui le traduit en langage machine.
Les compilateurs sont des outils essentiels et trÚs complexes qui interviennent dans tous les programmes, notamment des logiciels trÚs critiques :
Par exemple, les programmes embarquĂ©s dans les systĂšmes bancaires, dans les systĂšmes de contrĂŽle de vol des avions, ou mĂȘme dans la chirurgie assistĂ©e par ordinateur ou les centrales nuclĂ©aires [âŠ] : la prĂ©sence dâerreur durant leur exĂ©cution pourrait avoir des consĂ©quences dĂ©sastreuses, que ce soit en termes de vies humaines, de dĂ©gĂąts Ă©cologiques, ou de coĂ»t financier. (Delphine Demange, Semantic foundations of intermediate program representations, ThĂšse soutenue le 19 octobre 2012.)
Comment ça marche ?
RĂ©ponse rapide : avec beaucoup de mathĂ©matiques. RĂ©ponse un peu plus dĂ©taillĂ©e : Ă partir de diffĂ©rents types dâanalyses aprĂšs une phase de prĂ©-traitement qui permet de dĂ©terminer comment traiter les informations.
- Lâanalyse lexicale : dĂ©coupe le code en unitĂ©s lexicales ou « tokens » qui vont permettre au compilateur de traiter les donnĂ©es par la suite. Ce faisant le compilateur sĂ©pare les diffĂ©rents types dâĂ©lĂ©ments : variables, opĂ©rateurs, sĂ©parateurs, mots-clĂ©s, etc.
- Lâanalyse syntaxique : vĂ©rifie que le programme source ne contient pas dâerreur de syntaxe et que le code source est correct et, Ă©videmment le compilateur signale les erreurs quâil a pu trouver Ă ce stade.
- Lâanalyse sĂ©mantique : aprĂšs la syntaxe, câest le sens du code qui est examinĂ©. Le compilateur va ainsi vĂ©rifier sâil y a des erreurs de logique, passant, que le code fait bien ce quâil est censĂ© faire. Ă ce stade, le compilateur va aussi signaler les erreurs, voire, rejeter un code incorrect.
- Lâoptimisation : permet de nettoyer le code pour le rendre plus rapide Ă exĂ©cuter. Ă lâheure actuelle avec des processus trĂšs gourmands en ressources, câest une Ă©tape-clĂ©, ça nâa pas toujours Ă©tĂ© forcĂ©ment le cas.
- La gĂ©nĂ©ration du code final : câest la derniĂšre phase dont le rĂ©sultat est le code exĂ©cutable.
Delphine Demange : comment vérifier que les compilateurs font leur travail correctement
Parcours
Delphine Demange entre en licence dâinformatique Ă lâuniversitĂ© de Rennes 1 en 2004. Elle y obtiendra un magistĂšre Informatique et tĂ©lĂ©communications en 2006 puis fera le mastĂšre de recherche en informatique de la mĂȘme universitĂ© en 2008. Elle achĂšvera cette partie de ses Ă©tudes par un stage de master Ă lâIRISA (Ă©quipe Celtique), en vĂ©rification de programme. Au bout des cinq mois de stage, en 2009, elle sâinscrira en thĂšse. Une thĂšse, Fondements sĂ©mantiques des reprĂ©sentations intermĂ©diaires de programmes (en), soutenue en 2012 et qui lui vaudra le prix de thĂšse Gilles Kahn 2013 de la SIF, et qui porte sur :
la vĂ©rification formelle de logiciel, câest-Ă -dire Ă lâensemble des techniques et dâoutils scientifiques qui permettent dâassurer quâun logiciel remplit ces exigences [de qualitĂ© des systĂšmes critiques]. (RĂ©sumĂ© Ă©tendu de sa thĂšse).
Elle part ensuite pour les USA, Ă lâUniversitĂ© de Pennsylvanie pour une annĂ©e de post-doctorat. LĂ , elle travaillera sur un projet alliant vĂ©rification et sĂ©curitĂ©. De retour en France, elle passe des concours. Elle est, depuis 2013, maĂźtresse de confĂ©rence Ă lâuniversitĂ© Rennes 1.
En fĂ©vrier 2024, elle donnait un cours au CollĂšge de France : ReprĂ©sentations intermĂ©diaires pour la compilation : sâaffranchir du graphe de flot de contrĂŽle.
On peut retrouver ses communications et articles ainsi que sa thĂšse, toutes en anglais, sur HAL science ouverte.
La vérification des logiciels
Comme elle le dit en résumé de sa thÚse :
Nos vies quotidiennes dĂ©pendent de plus en plus, sans mĂȘme parfois que nous nous en rendions compte, de lâutilisation de programmes informatiques. Ces programmes nâont toutefois pas tous le mĂȘme niveau de criticitĂ©. Par exemple, les programmes embarquĂ©s dans les systĂšmes bancaires, dans les systĂšmes de contrĂŽle de vol des avions, ou mĂȘme dans la chirurgie assistĂ©e par ordinateur ou les centrales nuclĂ©aires sont appelĂ©s systĂšmes critiques : la prĂ©sence dâerreur durant leur exĂ©cution pourrait avoir des consĂ©quences dĂ©sastreuses, que ce soit en termes de vies humaines, de dĂ©gĂąts Ă©cologiques, ou de coĂ»t financier. Ce type de programme requiert donc de fortes garanties : leur exĂ©cution ne devrait pas Ă©chouer, et leur correction fonctionnelle devrait ĂȘtre garantie.
Elle ajoute plus loin que les compilateurs Ă©tant des logiciels, ils sont Ă leur tour susceptibles dâavoir des bugs comme nâimporte quel autre programme. Il est donc nĂ©cessaire quâils rĂ©pondent aux mĂȘmes exigences infaillibilitĂ© que les systĂšmes critiques sur lesquels ils travaillent.
Dans un entretien accordĂ© au site de lâuniversitĂ© de Rennes en 2014, elle prĂ©cise que son travail a pour but final :
dâassurer, par une preuve mathĂ©matique et assistĂ©e par ordinateur, que les compilateurs compilent correctement les programmes (i.e. ils nâajoutent pas de nouveaux comportements aux programmes), et que les vĂ©rifieurs calculent des propriĂ©tĂ©s sur des modĂšles corrects des programmes (si le modĂšle du programme ne comporte pas dâerreur, alors le programme dâorigine nâen comporte pas non plus).
Ses travaux de thĂšse portant les reprĂ©sentations intermĂ©diaires (IR) des programmes sur lesquels travaillent les compilateurs et vĂ©rificateurs. Ces IR simplifient les analyses de ces outils qui peuvent analyser des programmes trĂšs complexes. Elle continue, depuis, ses recherches dans le mĂȘme domaine avec :
la vérification des techniques de compilation optimisantes pour les langages de haut-niveau, en y incluant les aspects les plus difficiles des langages modernes, comme la gestion de la mémoire, la concurrence et les modÚles de mémoire faibles. (entretien, Université de Rennes).
Tout cela demande beaucoup de mathĂ©matique, parfait pour quelquâun qui a hĂ©sitĂ© entre les maths et lâinformatique.
Quelques autres sources dâinformation
Sur les compilateurs, internet est bien pourvu en ressources en français sur le sujet, par exemple :
â Compilation informatique : dĂ©finition concrĂšte et rĂŽle, Journal du net, 2016,
â Comment fonctionnent les compilateurs, IBM, [sd],
â Quâest-ce quâune conception de compilateur ? Types, outils de construction, exemple, Kaia CĂ©rulĂ©en, GURU99, [septembre 2025 ?],
â Cours de compilation, [sd],
â Compilation, pdf Ă tĂ©lĂ©charger,
â Langages de programmation et compilation, Jean-Christophe FilliĂątre, septembre 2016,
â ReprĂ©sentations intermĂ©diaires pour la compilation : sâaffranchir du graphe de flot de contrĂŽle, cours au CollĂšge de France, 15 fĂ©vrier 2024
â Fondements sĂ©mantiques des reprĂ©sentations intermĂ©diaires de programmes, thĂšse, en anglais, de Delphine Demange.
Sinon on peut aussi lire ou relire lâhommage Ă France Allen sur LinuxFr. Il y a aussi, en anglais, cet article Early Computers and Computing Institutions (en) qui raconte les dĂ©buts de FORTRAN. Câest trĂšs intĂ©ressant. Mais il faut soit lâacheter (15,50 dollars pour les membres ou 30 dollars pour les non-membres) ou faire partie dâune structure adhĂ©rente.
Questions et remerciements
Compte de tenu de lâimportance des compilateurs, la question se pose de la raison pour laquelle la personne qui a Ă©tĂ© Ă lâorigine du premier compilateur et du COBOL, Grace Murray Hopper (1906-1992) nâa pas reçu le prix Turing pourtant créé de son vivant, en 1966, et Ă une Ă©poque oĂč elle Ă©tait encore active. Le rĂ©cipiendaire du prix Turing 1966 ayant dâailleurs Ă©tĂ© Alan J. Perlis pour la construction de compilateurs.
Question complĂ©mentaire, pourquoi France Allen nâa reçu son prix Turing quâen 2006 « pour ses contributions pionniĂšres Ă la thĂ©orie et Ă la pratique des techniques utilisĂ©s par les compilateurs optimiseurs qui ont jetĂ© les bases des compilateurs optimiseurs modernes et de lâexĂ©cution parallĂšle automatique. » Frances (âFranâ) Elizabeth Allen. A.M. Turing Award 2006 (en), alors quâelle avait pris sa retraite depuis 2002. Elle reste toujours aussi importante : un de ses textes de 1970 fait partie de la bibliographie de la thĂšse de Delphine Demange.
DerniĂšre question, dans son discours de remise du prix Turing en 2007, Frances Allen disait quâaprĂšs une phase de stagnation des compilateurs, on devrait avoir une phase de progrĂšs significatifs dans le domaine. Est-ce que vous avez une idĂ©e de ce Ă quoi elle aurait pu penser ?
Un trĂšs grand merci Ă vmagnin pour son aide et les documents quâil mâa envoyĂ©s pour mâaider Ă rĂ©diger cette dĂ©pĂȘche.
Aller plus loin
- Page Delphine Demange sur le site de l'Irisa (81 clics)
- Entretien avec Delphine Demange (60 clics)

# Prix Turing et Grace Hopper
Posté par lasher . Ăvalué à  10 (+12/-0).
Sommaire
De l'attribution du prix Turing
Pourquoi Alan Perlis et pas Hopper ? Parce que c'est lui qui a fourni un premier compilateur fonctionnel (qui prend un programme de « haut niveau » â si j'ai bien compris, il s'agissait de formules mathĂ©matiques â en entrĂ©e et gĂ©nĂšre du code machine en sortie).
Grace Hopper a proposĂ© le premier langage (et le compilateur associĂ©) « pour humains » je dirais, et que je qualifierais de « gĂ©nĂ©raliste » (mĂȘme si je pense que le langage créé par Perlis Ă©tait aussi Turing-complet). C'est l'une des premiĂšres personnes Ă insister sur la notion de lisibilitĂ© des programmes (au sens d'avoir un programme Ă©crit « en anglais », ou quelque chose d'approchĂ©), et trĂšs clairement la premiĂšre Ă avoir menĂ© Ă bien ce projet.
Par contre, il existe un prix Hopper (et Ă ma connaissance pas de Prix Perlis), qui rĂ©compense une contribution unique et majeure accomplie avant 35 ans. Bon, il a Ă©tĂ© créé aprĂšs la mort de Grace Hopper, et ça fait un peu guise de mea culpa de la part de l'ACM, mais peu de personnes peuvent se targuer d'avoir un prix Ă leur nom (mĂȘme de façon posthume). Il y a aussi un Prix Hopper dĂ©cernĂ© « en interne » par la marine US pour les femmes qui ont des contributions majeures dans le numĂ©rique/l'informatique.
Concernant le cĂŽtĂ© tardif des remises de prix, honnĂȘtement ça dĂ©pend aussi parfois de l'Ăšre du temps. L'un des deux co-rĂ©cipiendaires en 2025, Charles Sutton, rĂ©compensĂ© pour ses travaux sur l'apprentissage renforcĂ© (sur lequel il publie depuis les annĂ©es 70, et qui a de vraies applications depuis longtemps), est bien plus vieux que Yann Le Cun (2015), rĂ©compensĂ© pour son travail sur l'apprentissage profond de rĂ©seaux de neurones artificiels (et de mĂ©moire, il a commencĂ© Ă publier dessus vers 1989).
Enfin, concernant les progrÚs en compilation, il y a beaucoup de choses en ce qui concerne les compilateurs optimisants. La parallélisation automatique « générale » ne fonctionne pas (ou pas bien), ou bien est limitée au cas « triviaux » (sur des programmes qui respectent des propriétés facilement déterminées à la compilation). Je vais BEAUCOUP simplfier dans ce qui suit.
ModÚle polyédrique
Par contre, il y a eu beaucoup de travaux sur l'optimisation et la parallélisation automatique de certains types de programmes, en particulier l'optimisation sur des nids de boucles imparfaits. Il s'agit d'optimisations reposant sur le modÚle polyédrique. L'idée est que si des boucles imbriquées dans un programme respectent certaines propriétés bien spécifiques (notamment qu'on peut garantir le « sens » dans lequel les tableaux utilisés dans ces nids de boucles est « monotone », c'est-à -dire que l'accÚs est toujours croissant ou décroissant), alors il est possible de créer une représentation de l'espace d'itération de ces boucles sous forme de polyÚdre, et les points qui le composent sont les points de l'espace d'itération. On peut ensuite « tordre » ce polyÚdre pour changer l'ordre des boucles, dérouler certaines boucles, fusionner certaines instructions, etc., en fonction des contraintes d'optimisation voulues (taille du code, rapidité du programme, etc.).
Le modÚle (et les premiÚres implémentations semi-automatisées) a été proposé par Paul Fautrier dans les années 80. Il a co-écrit un article dans « Encyclopedia of Computer Science » qui résume l'approche. On peut trouver une version complÚte sur ResearchGate.
Il y a eu beaucoup de recherche en France, mais tout Ă©tait trĂšs thĂ©orique, et quand c'Ă©tait vraiment implĂ©mentĂ©, c'Ă©tait surtout des implĂ©mentations faites Ă la main pour montrer que les algos marchaient. Courant des annĂ©es 2000, certaines implĂ©mentations dans des compilateurs (GCC avait une branche dĂ©diĂ©e, mais qui a mis beaucoup de temps a ĂȘtre fusionnĂ© avec le tronc commun ; clang/llvm a eu des implĂ©mentations trĂšs rapidement). Ironiquement, pas mal de profs qui travaillent Ă Ohio State University ont fait leur postdoc dans des labos français fin des annĂ©es 80/courant 90, et ont fait ce que les français n'ont pas su : ils ont implĂ©mentĂ© le modĂšle polyĂ©drique dans un compilateur dĂšs le dĂ©but des annĂ©es 2000. Depuis, le modĂšle est disponible dans LLVM, et il me semble qu'il n'est plus nĂ©cessaire d'activer explicitement une option pour que ce soit utilisĂ©.
Le modÚle polyédrique permet non seulement l'optimisation du code concerné, mais aussi la parallélisation automatique lorsqu'il s'applique. Cependant, pour paraphraser Feautrier, « Malheureusement le modÚle polyédrique ne s'applique qu'aux polyÚdres. » Un programme qui fait des accÚs indirects à une liste ou un tableau (
A[B[i]]) ne peut ĂȘtre optimisĂ© grĂące au modĂšle polyĂ©drique, car le compilateur est a priori incapable de garantir la monotonie des accĂšs au tableauAdans mon exemple. Il existe des compilateurs (commerciaux) qui proposent d'annoter le code pour donner les infos nĂ©cessaires aux compilateurs optimisants reposant sur le modĂšle polyĂ©drique pour l'aider Ă savoir quand il est possible de l'utiliser.Renouveau des langages fonctionnels pour exploiter le parallĂ©lisme
Parmi les autres choses que je peux voir, c'est qu'avec la gĂ©nĂ©ralisation du parallĂ©lisme dans les ordinateurs (Ă cause de la venue des processeurs multicĆurs vers 2004, et leur gĂ©nĂ©ralisation vers la fin des annĂ©es 2000), tout un tas de langages, notamment fonctionnels, ont vu leur utilisation augmenter, mais aussi la recherche liĂ©e aux langages fonctionnels a aussi repris du poil de la bĂȘte (au moins Ă l'Ă©poque). La raison Ă©tant que les langages fonctionnels ont tendance Ă moins s'appuyer sur un Ă©tat global du programme, ce qui veut dire que lorsqu'on crĂ©e des tĂąches pour s'exĂ©cuter en parallĂšle sur un systĂšme multiprocesseurs/multicĆurs, alors il y a moins de risques de conflits, car les zones mĂ©moires partagĂ©es sont moins grandes et moins nombreuses.
LLVM en général
LLVM est Ă la base un projet de compilateur financĂ© par la NSF aux US (dĂ©but des annĂ©es 2000). Bien qu'il y ait des contributions au domaine de la compilation qui en sont dĂ©rivĂ©s, le projet en lui-mĂȘme Ă©tait innovant en termes d'architecture logicielle (et de gĂ©nie logiciel) : il s'agissait d'intĂ©grer dans un mĂȘme cadre toutes les techniques d'optimisation ayant un impact positif significatif, et de proposer une architecture modulaire permettant de facilement intĂ©grer de nouvelles passes de compilation (il y a aussi eu pas mal de publications sur la reprĂ©sentation interne du graphe de reprĂ©sentation des programmes donnĂ©s en entrĂ©e Ă LLVM).
L'impact de LLVM sur la recherche en compilation est extrĂȘmement important. En proposant un logiciel raisonnablement bien documentĂ©, et trĂšs bien architecturĂ©, cela a permis Ă beaucoup de gens (Ă©tudiant-e-s en info « éclairĂ©s », technicien-ne-s/ingĂ©nieur-e-s, et bien entendu chercheurs et chercheuses dont c'est le mĂ©tier) d'explorer et d'expĂ©rimenter pour l'optimisation de code, lĂ oĂč franchement, avec GCC, c'Ă©tait bien plus galĂšre.
C'en est au point que les compilateurs d'Intel et Nvidia/PGI, et je crois aussi celui de Microsoft, sont tous basés sur LLVM (bien entendu il y a des histoires de licences aussi, mais pas que).
LLVM innove beaucoup grĂące Ă son systĂšme de reprĂ©sentation intermĂ©diaire. L'IR de base reprend les « bonnes pratiques » pour un compilo, mais est aussi super facilement extensible (toutes proportions gardĂ©es â on parle d'un compilateur quand mĂȘme). RĂ©cemment (vers 2019 ?) il a Ă©tĂ© proposĂ© MLIR, qui est une sorte de moyen de crĂ©er ses propres reprĂ©sentations intermĂ©diaires dans LLVM, exprimĂ©es Ă partir de l'IR de LLVM. Ăa permet de rajouter des opĂ©rations et opĂ©rateurs utiles pour certains domaines (par exemple, la prise en compte de tenseurs pour des programmes qui s'en servent, comme les logiciels gĂ©nĂ©rant des modĂšles d'apprentissage profond).
Je suis pas mal Ă la ramasse sur tout ce qui s'est passĂ© depuis 10-15 ans, du peu que j'ai suivi, Fran Allen avait bien raison en 2007 : il y avait un gros bouillonnement liĂ© Ă l'arrivĂ©e des multicĆurs et manycores. :-)
[^] # Re: Prix Turing et Grace Hopper
Posté par Ysabeau đ§¶ (site web personnel, Mastodon) . Ăvalué à  5 (+3/-1). DerniĂšre modification le 18 octobre 2025 Ă 16:49.
Merci pour ce commentaire. Je ne suis pas trĂšs convaincue par les explications, prĂ©cautionneuses, sur le prix Turing cela dit đ
J'apprécie vraiment le topo sur l'évolution des compilateurs et de l'optimisation que je pense avoir à peu prÚs compris. Sachant que les compilateurs sont quelque chose de trÚs complexe, avec des langages de trÚs haut niveau, j'imagine bien que c'est trÚs trÚs simplifié. Mais je pense que cela est une bonne base pour avoir envie d'en apprendre plus au besoin et pour savoir de quoi on parle le reste du temps.
Et enfin, un grand merci pour enfin avoir rĂ©pondu Ă cette question qui me turlupinait depuis 2020 sur les progrĂšs des compilateurs Ă venir en 2007 aprĂšs une phase de stagnation (ça ne m'a pas empĂȘchĂ© de dormir, mais c'est bien de le savoir).
Je nâai aucun avis sur systemd
[^] # Re: Prix Turing et Grace Hopper
Posté par ÇpÉŚÆuâ nÇıɄÊÊÉW-ÇÉčÉčÇÄ±Ô (site web personnel) . Ăvalué à  3 (+1/-0).
Lire la partie dĂ©diĂ©e Ă LLVM de votre commentaire mâĂ©voque lâidĂ©e que le succĂšs de ce compilateur est aussi liĂ© Ă , si jâai bien compris, une rare forme dâenshittification « pour la bonne cause : » la direction de gcc ne souhaitant pas adopter une architecture plus moderne qui aurait facilitĂ© les travaux et intĂ©grations diverses. Comme quoi, mĂȘmes causes mĂȘmes effets, position dominante -> dĂ©gradations volontaires. Ce nâest pas rĂ©servĂ© aux amis de Donald.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » â Odes â Horace
[^] # Re: Prix Turing et Grace Hopper
Posté par BenoĂźt Sibaud (site web personnel) . Ăvalué à  4 (+1/-0).
Cela parait un peu abusif de qualifier ainsi un comportement assez passif, si j'ai bien suivi. Je ne qualifierai pas le vieillissement de merdification ou l'accumulation de la poussiÚre : parce qu'il suffit de ne rien faire. Pour gcc ça semblerait plus à une sclérose, quelle que soit la raison (ou les raisons), entre manque de contributions, rétrocompatibilité, dette technique, gouvernance, feuille de route, priorités différentes, etc. à noter que llvm a aussi fait progresser gcc en réaction.
[^] # Re: Prix Turing et Grace Hopper
Posté par ÇpÉŚÆuâ nÇıɄÊÊÉW-ÇÉčÉčÇÄ±Ô (site web personnel) . Ăvalué à  2 (+0/-0).
OK. Vous en savez sûrement plus long que moi sur le sujet. J'avais cru lire quelque part dans ces colonnes qu'il y avait eu refus explicite et répété de la part de la direction du projet pour les raisons évoquées ci-avant ? Mais j'aurais bien du mal à citer la moindre source, et le sujet sort totalement de mon domaine de compétences.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » â Odes â Horace
[^] # Re: Prix Turing et Grace Hopper
Posté par pulkomandy (site web personnel, Mastodon) . Ăvalué à  6 (+3/-0).
Le développement de llvm a accéléré surtout suite au passage de gcc à la license GPL version 3. Apple (gros utilisateur et contributeur historique de gcc) n'a pas validé l'utilisation de cette license pour l'intégration dans Mac OS, les clauses sur les brevets étant jugées trop contraignantes pour eux.
Pour d'autres parties de leur systÚme ils ont pu trouver un remplacement (par exemple, bash a été remplacé par zsh). Mais pour le compilateur, il n'y avait pas d'autre choix que llvm, projet peu connu à l'époque mais qui fournissait un point de départ acceptable.
Ce n'est pas la peine de chercher une raison plus loin, meÌme si les critiques sur gcc Ă l'Ă©poque (refus d'intĂ©grer du C++ dans la base de code pour mieux la structurer, par exemple) peuvent eÌtre justifiĂ©es.
[^] # Re: Prix Turing et Grace Hopper
Posté par ÇpÉŚÆuâ nÇıɄÊÊÉW-ÇÉčÉčÇÄ±Ô (site web personnel) . Ăvalué à  4 (+2/-0).
Histoire d'ĂȘtre certains qu'il n'y ait pas de quiproquo, ce que mon commentaire qualifie --- peut-ĂȘtre Ă tort --- d''enshittification de gcc ce n'est assurĂ©ment pas le passage Ă la GPL v3 ; bien au contraire. Que le libre fasse hurler et fuir les acteurs principaux et acharnĂ©s de ce phĂ©nomĂšne, comme la lumiĂšre les vampires, est tout sauf un corollaire inattendu.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » â Odes â Horace
[^] # Re: Prix Turing et Grace Hopper
Posté par BAud (site web personnel) . Ăvalué à  3 (+1/-0).
ce Ă quoi on te rĂ©pond qu'il n'y en a pas â contrairement Ă ce que tu affirmes â de merdification : il y a au contraire une volontĂ© de gĂ©rer la dette technique (avec ses limites, mauvaise volontĂ© parfois, trop d'impacts, structure de greffons rajoutĂ©e en surcouche et non pensĂ©e dĂšs le dĂ©but : qui aurait pensĂ© ajouter cobol, fortran, ada au dĂ©but Ă gcc, dĂ©jĂ c++ semblait cohĂ©rentâŠ).
LLVM a permis de redonner une dynamique et c'est une Ă©mulation saine (autant avoir plusieurs compilateurs multi-plateformes : arm, mips, risc-v, x86âŠ)
[^] # Re: Prix Turing et Grace Hopper
Posté par ÇpÉŚÆuâ nÇıɄÊÊÉW-ÇÉčÉčÇÄ±Ô (site web personnel) . Ăvalué à  2 (+0/-0).
Ce à quoi on me répond aussi :
LĂ dessus aussi nous sommes bien d'accord :-).
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » â Odes â Horace
[^] # Re: Prix Turing et Grace Hopper
Posté par lasher . Ăvalué à  6 (+4/-0).
Absolument. Dans le cas de GCC, certaines branches dont les fonctionnalitĂ©s avaient Ă©tĂ© correctement dĂ©buggĂ©es et validĂ©es par leurs dĂ©veloppeurs avaient Ă©tĂ© mises de cĂŽtĂ© pendant un trĂšs long moment. Et quand les mĂȘmes ont Ă©tĂ© dĂ©veloppĂ©es dans Clang/LLVM, l'Ă©quipe de devs de GCC a accĂ©lĂ©rĂ© l'intĂ©gration de fonctionnalitĂ©s qui Ă©taient en attente de merge depuis un moment.
Je trouve cependant assez parlant que GCC ne se soit officiellement Ă©quipĂ© d'un systĂšme de plugins que depuis 2016, lĂ oĂč LLVM dispose de cela depuis presque le dĂ©but1. Certes, une partie est due Ă de la dette technique, mais il me semble aussi beaucoup Ă un certain conservatisme de la part des mainteneurs de GCC.
J'exagĂšre bien entendu, mais pas tant que ça. La modularitĂ© est au cĆur du dĂ©veloppement de LLVM. â©
[^] # Re: Prix Turing et Grace Hopper
Posté par octane . Ăvalué à  3 (+2/-1).
C'est directement du à Stallman qui voulait volontairement conserver cet aspect obscur afin de permettre la viralité du code gpl. Un compilo plus simple à comprendre aurait permis de découper bibliothÚques et programmes, ce qu'il ne voulait pas car cela aurait permis des bibliothÚques non libres dans des programmes libres.
Il ne s'agit pas d'enshitification, mais de frein à la rétroingénierie pour permettre la diffusion de code GPL.
Et forcément j'avais un super article qui en parlait mais je ne met plus la main dessus, c'est google qui s'enshittifie :-(
[^] # Re: Prix Turing et Grace Hopper
Posté par pulkomandy (site web personnel, Mastodon) . Ăvalué à  5 (+2/-0).
Ces histoires remontent assez loin, en fait la question s'est posĂ©e pour le frontend Objective-C de gcc avant 1992, avec une explication de Stallman lui-mĂȘme ici:
https://github.com/JoshCheek/clisp/blob/master/doc/Why-CLISP-is-under-GPL#L360
Mais je ne sais pas à quel point cela était toujours dans la culture de gcc par la suite. Il y avait déjà eu une "crise" à l'époque du passage de gcc2 à gcc3 avec le projet EGCS (c'est donc vers 1996-1998), un fork de gcc avec une gouvernance plus ouverte, qui a fini par devenir le gcc "officiel".
[^] # Re: Prix Turing et Grace Hopper
Posté par Philippe F (site web personnel) . Ăvalué à  3 (+1/-0). DerniĂšre modification le 22 octobre 2025 Ă 09:29.
Je me souviens des deux évÚnements.
Malgré tout le respect qu'on doit à GCC et à Stallman pour avoir démarré ce projet brillant, c'est un projet qui a aussi ses imperfections. M. Stallman n'est pas exempt crises d'égo notamment (arf).
Quand on pense qu'en 2025, il n'a toujours pas digĂ©rĂ© que Linux marche mieux que GNU HurdâŠ
[^] # Re: Prix Turing et Grace Hopper
Posté par Faya . Ăvalué à  3 (+1/-0).
DigĂ©rĂ© je ne sais pas, mais mĂȘme lui a conscience que Linux marche mieux vu que c'est ce qu'il utilise : « As of 2022 I use a Thinkpad x200 computer, which has a free initialization program (Libreboot) and a free operating system (Trisquel GNU/Linux). »
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.