ANNÉES 1950

Compilateur A-0

Au printemps de l'année 1952, la mathématicienne américaine Grace Murray Hopper crée l'A-0 (Arithmetic Language 0), premier compilateur jamais conçu. Cette création survient à une époque où l'informatique tente de s'extraire des laboratoires militaires pour s'ouvrir à d'autres horizons.

Le chemin vers cette innovation commence durant la Seconde Guerre mondiale. En 1943, cette diplômée de Yale intègre la réserve navale américaine avant d'être affectée à Harvard. Elle y travaille sur le Mark I, alors calculateur numérique le plus imposant, sous la supervision de Howard Aiken. Elle fait partie des trois premiers programmeurs de l'histoire à manipuler cet ancêtre des ordinateurs modernes.

Sur le Mark I, la programmation s'effectue via des rubans perforés : un trou symbolise un 1, l'absence de perforation un 0. Hopper rédige le manuel d'utilisation de l'engin, un Manuel d'opération pour le calculateur à séquence automatique de 500 pages. Cette plongée dans les entrailles de la machine lui donne une vision unique des difficultés de la programmation à son niveau le plus élémentaire.

En 1949, elle quitte Harvard pour la Eckert-Mauchly Computer Corporation. Elle participe à la conception de l'UNIVAC I, premier ordinateur commercial électronique. C'est là qu'elle remarque un problème pratique : les programmeurs gaspillent des heures à recopier du code existant pour l'adapter à de nouveaux projets. Cette tâche fastidieuse génère quantité d'erreurs, principalement lors de l'ajustement manuel des adresses mémoire.

Cette observation la pousse en 1951 à créer un système d'automatisation du processus. Elle développe l'A-0, capable d'assembler des sous-routines préexistantes en un programme cohérent. Son système utilise des caractères alphabétiques pour indiquer la nature des opérations (a pour arithmétique, x pour exponentiel). Les arguments et résultats figurent dans une liste numérotée, référencés par leur position.

La magie de l'A-0 tient à sa capacité de traduction entre langage symbolique et code machine. Pour calculer le carré d'un nombre, un programmeur spécifie simplement l'opération et les références aux variables, sans écrire toutes les instructions binaires correspondantes. Cette abstraction constitue une rupture car pour la première fois, les humains programment dans un langage plus naturel pour eux.

Les gains se révèlent considérables, des semaines de programmation se réduisant à quelques heures. Les erreurs diminuent, la fiabilité augmente. L'A-0 introduit une couche d'abstraction entre l'humain et la machine qui deviendra la pierre angulaire de l'informatique moderne.

Le système évolue avec les versions A-1 puis A-2 en 1953. Cette dernière mouture introduit des mnémoniques courtes pour les opérations, rendant le code plus lisible. Par exemple, ADD 00X 00Y 00Z additionne X et Y, stockant le résultat dans Z. L'A-2 est le premier compilateur largement adopté par les utilisateurs d'UNIVAC, validant ainsi le concept.

En 1954, Hopper prend la direction de la programmation automatique pour la division UNIVAC. Cette position lui donne l'opportunité de concrétiser sa vision d'un langage plus accessible. Elle comprend que la majorité des utilisateurs n'apprécient guère les symboles mathématiques et préfèrent quelque chose de plus naturel : l'anglais. Cette réflexion mène au B-0 (Business Language 0) en 1955, rebaptisé FLOW-MATIC, qui autorise la rédaction de programmes avec une syntaxe proche de l'anglais courant.

L'A-0 atteint son apogée dans le développement du COBOL à partir de 1959. Lors de la Conférence sur les Langages de Systèmes de Données (CODASYL), où Hopper est conseillère technique, les fondements établis avec l'A-0 et FLOW-MATIC inspirent directement ce langage. La structure du code en sections distinctes et l'usage d'une syntaxe proche de l'anglais caractérisent principalement du COBOL.

Le compilateur A-0 instaure plusieurs principes structurants pour l'informatique : la réutilisation du code, l'abstraction des opérations machine vers des instructions de haut niveau, et l'accessibilité de la programmation. Ces concepts restent incontournables, au point qu'on peine à imaginer l'informatique contemporaine sans eux.

La contribution de Hopper lui vaut de nombreuses distinctions. En 1969, elle reçoit le Computer Sciences Man-of-the-Year Award de la Data Processing Management Association, titre dont l'ironie n'échappe à personne avec notre regard actuel. Elle poursuit sa carrière dans la Marine américaine jusqu'en 1986, atteignant le grade de contre-amiral, tout en défendant l'innovation informatique et la démocratisation de la programmation.

Le compilateur A-0 a métamorphosé un domaine autrefois réservé aux mathématiciens et scientifiques en un outil accessible plus largement. La simplicité d'utilisation d'une part, et l'abstraction des complexités techniques d'autre part, demeurent aujourd'hui au cœur des préoccupations des concepteurs de langages informatiques, héritage direct du travail de Grace Hopper il y a 73 ans.