EPOCH
EPOCH © 2025 par Stéphane Fosse - Ce livre est publié selon les termes de la licence CC BY-SA 4.0
Chapitre 4
1950
La naissance silencieuse d’un monde calculé
Au lendemain de 1945, tandis que l’Europe pansait ses plaies, un nouvel ordre mondial s’instaurait. Les décombres fumants de la Seconde Guerre mondiale laissaient place à une confrontation idéologique entre deux géants : les États-Unis et l’URSS. Cette rivalité, moins sanglante mais tout aussi féroce, allait façonner le développement technologique durant la décennie 1950-1960.
Washington et Moscou déversaient des fonds colossaux dans leurs programmes militaires et spatiaux. Les bombes devenaient plus destructrices, les missiles plus précis, les avions plus rapides. Chaque avancée technique exigeait des calculs plus complexes. Les vieux bouliers et règles à calcul ne suffisaient plus. Il fallait des machines capables de traiter rapidement des équations à plusieurs variables, simuler des explosions nucléaires ou calculer des trajectoires balistiques en quelques heures au lieu de quelques mois.
La guerre avait prouvé l’utilité des calculateurs. Le chiffre d’Enigma cassé par les Britanniques à Bletchley Park avait montré qu’une machine bien conçue pouvait résoudre des problèmes jugés insolubles. Aux États-Unis, le « National Security Act » de 1947 créait la CIA et la NSA. Ces nouvelles agences se nourrissaient de données comme les messages interceptés, les rapports d’espions ou des photos de reconnaissance aérienne. Le chiffrement et le déchiffrement devenaient des enjeux stratégiques majeurs.
Loin des préoccupations militaires, la société civile traversait une mutation sans précédent. L’économie occidentale connaissait une croissance fulgurante. Les entreprises s’agrandissaient, les administrations s’étoffaient. Partout, les papiers s’accumulaient : fiches de paie, bons de commande, factures, courriers, ou dossiers médicaux. Les méthodes traditionnelles de classement et d’archivage montraient leurs limites. Les cartes perforées d’Herman Hollerith, déjà anciennes, ne répondaient plus aux besoins modernes.
Le baby-boom transformait la démographie. Des millions d’enfants naissaient chaque année, exigeant des systèmes de gestion publique plus efficaces. En Europe, les nouvelles politiques de protection sociale généraient des montagnes de formulaires. Aux États-Unis, la Social Security Administration croulait sous les dossiers. Comment suivre efficacement tous ces citoyens, leurs cotisations, leurs droits ?
Jadis réservés aux plus fortunés, les services bancaires se démocratisaient. Le nombre de comptes explosait, les transactions se multipliaient. Les caissiers et les comptables, armés de leurs livres de comptes et de leurs machines à calculer mécaniques, peinaient à tenir le rythme. Le secteur financier réclamait des solutions plus rapides et plus fiables.
Dans les usines, l’automatisation progressait à grands pas. Les chaînes de montage adoptaient des systèmes de contrôle électroniques. La théorie cybernétique de Norbert Wiener trouvait des applications concrètes. Les principes de rétroaction (« feedback »), utilisés pour guider les missiles pendant la guerre, servaient désormais à réguler la production industrielle.
Une alliance féconde se formait entre universités, industriels et militaires. Le MIT, Harvard, l’Université de Pennsylvanie, mais aussi les laboratoires privés comme Bell Labs ou IBM, devenaient des creusets d’innovation. Une nouvelle génération de chercheurs et d’ingénieurs s’attaquait aux problèmes du calcul automatique. Ce modèle de coopération, que le président Eisenhower qualifierait plus tard de « complexe militaro-industriel », accélérait considérablement le progrès technique.
Le nouveau métier de programmeur faisait son apparition. Ces spécialistes traduisaient les besoins et les problèmes concrets en instructions compréhensibles par les machines. Fait notable, de nombreuses femmes occupaient ces postes, comme Grace Hopper, qui travaillait sur le premier compilateur. Cette marine mathématicienne ouvrait la voie à des méthodes de programmation plus intuitives, libérant les utilisateurs de la complexité des langages machine.
La multiplication des fabricants de calculateurs créait un problème inattendu d’incompatibilité. Chaque constructeur développait ses propres standards. Les machines ne se comprenaient pas entre elles, les programmes écrits pour un modèle ne fonctionnaient pas sur un autre. Les premiers efforts de normalisation apparaissaient timidement, prémices d’une problématique qui marquerait durablement l’histoire informatique.
Les médias découvraient ces mystérieuses machines. Les journaux populaires évoquaient avec fascination ou inquiétude ces « cerveaux électroniques ». Hollywood s’emparait du sujet, tantôt présentant l’ordinateur comme un assistant merveilleux, tantôt comme une menace pour l’humanité. Ces représentations contradictoires façonnaient la perception publique d’une technologie encore mal comprise.
L’automatisation soulevait des inquiétudes sociales. Certains métiers semblaient menacés de disparition et les syndicats s’alarmaient des risques de chômage massif. Dans les milieux académiques, les premiers débats sur l’intelligence artificielle prenaient forme, notamment après la conférence de Dartmouth en 1956 où le terme fut officiellement adopté.
Le réseau téléphonique mondial s’étendait et de nouveaux câbles traversaient les océans, reliant les continents. La qualité des communications s’améliorait et les coûts diminuaient. La transmission de données à distance devenait techniquement possible, ouvrant la voie aux futurs réseaux informatiques.
Les travaux théoriques de Claude Shannon sur l’information trouvaient leurs premières applications pratiques. Ses concepts mathématiques de codage et de correction d’erreurs rendaient les communications plus fiables. Le bit s’imposait progressivement comme unité fondamentale de mesure de l’information.
Le transistor, inventé en 1947 aux Bell Labs, remplaçait peu à peu les tubes à vide. Plus petit, plus fiable, moins gourmand en énergie, il permettait de concevoir des appareils plus compacts. Dans la région de San Francisco, de jeunes entreprises spécialisées dans les semi-conducteurs s’établissaient dans ce qui deviendrait la Silicon Valley.
Les sciences naturelles adoptaient ces nouveaux outils de calcul. Astronomes, physiciens, chimistes découvraient les possibilités offertes par l’automatisation. Des disciplines émergentes comme la biologie moléculaire bénéficiaient de ces capacités de traitement accrues. La météorologie commençait à utiliser les calculateurs pour améliorer ses prévisions, avec des résultats modestes mais prometteurs.
Cette décennie 1950-1960 a été le départ d’une transformation sociale. Les innovations techniques se mêlaient inextricablement aux mutations économiques et culturelles. L’impact sur nos sociétés demeure palpable au XXIe siècle, alors que nous naviguons dans un monde toujours plus numérisé et interconnecté.
Code de Hamming
Richard Wesley Hamming travaillait aux Bell Labs sur le Model V, un des premiers ordinateurs à relais destiné à l’Aberdeen Proving Ground, lorsqu’il il observe une réalité contraignante : cette machine composée de 8 900 relais mécaniques connaît quotidiennement deux à trois défaillances. Cela représente approximativement une panne tous les deux à trois millions d’opérations. Le problème ne réside pas tant dans la détection des erreurs, puisque les circuits d’auto-vérification s’en chargent correctement. La difficulté surgit quand la machine fonctionne sans surveillance, notamment la nuit et durant les week-ends. Les calculs s’arrêtent net. Parfois l’ordinateur reprend son travail sur un nouveau problème, sans toutefois garantir la continuité des opérations précédentes.
Cette situation technique très concrète a poussé Hamming vers une réflexion plus profonde. Il cherchait un dépassement de la simple détection d’erreurs pour créer un système capable de corriger automatiquement ces défaillances. Une véritable rupture avec les approches antérieures.
La particularité du contexte technologique donne du relief à sa démarche. Les ordinateurs commençaient à supplanter les centraux téléphoniques comme systèmes de traitement d’information les plus complexes. Ces deux architectures présentaient pourtant une différence clé. Un central téléphonique dispose de nombreux chemins parallèles relativement autonomes les uns des autres. Une erreur sur l’un de ces chemins n’affecte qu’un nombre restreint d’appels. De surcroît, les erreurs échappant à la détection automatique finissent signalées par les clients eux-mêmes. Un ordinateur, lui, suit généralement un chemin unique où l’information passe maintes fois par les mêmes composants avant d’atteindre le résultat final. Une seule erreur non détectée risque d’invalider l’ensemble des calculs ultérieurs.
Face à cette structure problématique, Hamming a élaboré une approche mathématique novatrice. Son point de départ était l’information codée sous forme binaire. Cette représentation s’accordait naturellement avec les relais ouverts ou fermés, les circuits à bascule, les points et traits du morse, ou encore les bandes perforées. Sa véritable trouvaille réside dans l’ajout aux données de bits supplémentaires, nommés bits de parité, qui ne détectent pas seulement les erreurs mais les localisent avec précision.
Le cœur du code de Hamming tient dans un principe d’une simplicité trompeuse : chaque bit de parité vérifie un ensemble spécifique de positions dans le message. Par un choix judicieux de ces ensembles, on identifie exactement quelle position a subi une altération. À titre d’exemple, dans un code à sept positions dont quatre dédiées à l’information, trois bits de parité suffisent pour corriger n’importe quelle erreur simple. Cette redondance, définie comme le rapport entre le nombre total de bits utilisés et le nombre minimum nécessaire pour transmettre l’information, constitue le prix à payer pour garantir l’intégrité des données.
Pour la première fois, lors de la publication de Hamming dans le Bell System Technical Journal en 1950, un cadre théorique rigoureux aborde la question de la fiabilité des systèmes numériques. Hamming introduit notamment une représentation géométrique des codes correcteurs, où les séquences de bits sont des points dans un espace à n dimensions. La distance entre deux points, mesurée par le nombre de positions où leurs coordonnées diffèrent, se transforme en un outil d’analyse puissant pour évaluer les capacités de détection et de correction des codes.
Cette approche géométrique a permis à Hamming de prouver l’optimalité de ses codes dans plusieurs cas significatifs. Il démontre qu’aucun code ne peut détecter les erreurs simples avec moins de redondance que sa construction, et établit des résultats analogues pour la correction d’erreur simple et la détection d’erreur double. Ces démonstrations théoriques confirment que les compromis proposés entre redondance et capacité de correction atteignent le meilleur équilibre possible sous les hypothèses considérées.
Richard Wesley Hamming a entrevu d’autres applications au-delà du domaine des ordinateurs. Trois situations particulières tirent un bénéfice notable de ses codes : le fonctionnement sans surveillance sur de longues périodes avec un équipement de secours minimal, les grands systèmes étroitement interconnectés où une défaillance isolée risque de paralyser l’ensemble de l’installation, et la transmission de signaux en présence de bruit quand sa réduction s’avère impossible ou trop coûteuse.
Sa vision s’est révélée prophétique. L’avènement de l’électronique a certes rendu les composants plus fiables que les relais mécaniques, par opération. Toutefois, l’accroissement considérable de la vitesse et de la complexité des systèmes a maintenu la question des erreurs au premier plan des préoccupations. Les codes de Hamming et leurs descendants peuplent aujourd’hui les mémoires d’ordinateur, les dispositifs de stockage et les systèmes de communication.
L’héritage de Hamming vit dans des techniques de correction d’erreurs sophistiquées intégrées aux technologies modernes. Des codes plus complexes traitent désormais des motifs d’erreurs variés, tous reposant sur les fondements posés par Hamming : l’ajout contrôlé de redondance pour détecter et corriger les erreurs, et l’analyse mathématique rigoureuse des capacités et limites des codes correcteurs. Sa réflexion sur la fiabilité numérique a fait naître une vision renouvelée de la conception des ordinateurs. La gestion des erreurs n’y apparaît plus comme une question secondaire mais comme partie intégrante de l’architecture système. Une perspective qui garde toute sa pertinence à notre époque.
Mémoire à tores magnétiques
Les ferrites magnétiques ont bouleversé le monde de l’informatique au milieu du XXe siècle. Ces petits anneaux de ferrite, capables de conserver un état magnétique stable, ont marqué l’histoire du stockage informatique pendant près de vingt ans. Leur principe repose sur une élégante application des lois physiques d’hystérésis magnétique : chaque tore pouvait être magnétisé dans l’un de deux états distincts, représentant ainsi parfaitement les valeurs binaires 0 et 1.
An Wang, chercheur au Harvard Computation Laboratory, décrit dès 1949 cette technique qui garde l’information y compris après coupure de l’alimentation électrique. Le véritable changement tient dans la manipulation de cet état magnétique par de simples impulsions électriques traversant le tore.
Jay Forrester transforme cette théorie en réalité concrète. Au MIT, il démontre en 1951 la viabilité d’un système de stockage tridimensionnel basé sur ces minuscules anneaux. William Papian, travaillant sur le projet Whirlwind, et Jan Rajchman chez RCA Laboratory développent dans la même période des architectures qui seront massivement adoptées. Leur travaux débouchent sur l’intégration de cette technologie dans des ordinateurs comme le Mark IV de Harvard.
La construction d’une telle mémoire repose sur un maillage bi ou tridimensionnel d’anneaux, chacun traversé par de nombreux conducteurs : lignes X et Y de sélection, fil de lecture/écriture, et parfois un fil d’inhibition. Pour sélectionner un tore spécifique, il faut appliquer simultanément des courants dans les lignes X et Y correspondantes. Cette astuce de coïncidence de courant résout le problème d’adressage individuel tout en limitant les circuits de commande nécessaires.
Fait notable, la lecture efface le contenu du tore. Il faut donc réécrire immédiatement la donnée si on souhaite la conserver. Malgré cette contrainte, les avantages de cette technologie ont séduit l’industrie par la conservation des données sans alimentation, l’accès rapide en quelques microsecondes, l’excellente fiabilité et la densité de stockage remarquable pour l’époque.
La fabrication exigeait une minutie extrême. L’assemblage restait largement manuel, le tissage des fils à travers les minuscules anneaux demandant patience et précision. Des tests semi-automatiques permettaient de vérifier environ 200 tores par heure avant leur intégration. Une fois la matrice assemblée, remplacer un tore défectueux relevait du casse-tête.
Burroughs Corporation a exploré une variante intéressante avec la mémoire rope. Cette configuration particulière des tores et des fils permettait le stockage permanent d’informations, idéal pour conserver programmes et routines système. L’ordinateur de navigation du programme Apollo a notamment tiré parti de cette technologie.
Les performances n’ont cessé de progresser. Les temps d’accès sont passés à moins de 2 microsecondes. Les signaux de sortie, d’abord de quelques millivolts, ont atteint plusieurs centaines de millivolts, simplifiant grandement les circuits de détection. La standardisation des composants a entraîné une baisse des coûts. Les tores magnétiques ont ainsi trouvé leur place dans les grands systèmes et dans les calculateurs industriels et embarqués.
L’avènement des mémoires à semi-conducteurs amorce le déclin de cette technologie à la fin des années 1960. Bénéficiant de l’essor fulgurant de la microélectronique, ces nouvelles mémoires offraient des possibilités de miniaturisation sans précédent. La transition s’est néanmoins étalée dans le temps, la non-volatilité des tores magnétiques restant un atout pour certaines applications critiques.
L’héritage conceptuel des mémoires à tores magnétiques demeure visible dans l’informatique moderne. L’adressage matriciel, la lecture avec rafraîchissement et l’organisation hiérarchique de la mémoire sont autant de principes toujours pertinents. Ces anneaux de ferrite ont rendu possible des ordinateurs plus rapides et plus fiables, contribuant à l’explosion informatique dans de nombreux secteurs d’activité.
Bande magnétique
En 1878, un ingénieur américain du nom d’Oberlin Smith rêve un système d’enregistrement sur fil métallique. Fasciné par le phonographe de Thomas Edison, il publie son idée dans The Electrical World dix ans plus tard. Un trait de génie qui ouvre un nouveau chapitre dans l’art de capturer les sons.
Le Danois Valdemar Poulsen transforme cette vision en réalité tangible. Son « Télégraphone » de 1898 grave pour la première fois des signaux sur un fil d’acier. La preuve est faite que l’enregistrement magnétique fonctionne. Toutefois, sans amplification électronique, l’appareil reste un prototype sans avenir commercial immédiat.
La vraie métamorphose survient dans l’Allemagne des années 1930. Fritz Pfleumer invente en 1928 son fameux « papier sonore », un support recouvert d’oxyde de fer. Cette trouvaille séduit AEG qui s’associe avec BASF pour créer le Magnetophon en 1935. Sur sa bande d’acétate de cellulose enduite d’oxyde de fer s’écrit déjà l’avenir du stockage magnétique.
La Seconde Guerre mondiale accélère l’évolution technique. Walter Weber découvre en 1940 la polarisation par courant alternatif, un procédé qui sublime la qualité sonore. Les radios du Reich diffusent alors des enregistrements d’un tel réalisme que les Alliés les prennent pour des émissions en direct. La guerre terminée, John Mullin, officier américain, rapporte aux États-Unis deux précieux Magnetophons. Ses démonstrations éblouissent l’industrie américaine. Ampex saisit l’occasion et lance en 1948 son modèle 200, premier magnétophone professionnel made in USA.
Les années 1950 structurent la technologie et la standardisent. Dans l’univers informatique, la bande magnétique s’impose comme référence pour l’enregistrement audio et règne en maître pour archiver les données. Sa capacité généreuse et son coût modéré en font la solution idéale pour les premiers mainframes. La bande 9 pistes standardise l’échange entre systèmes différents. Le Japon s’éveille à cette technologie, avec Sony en tête de file.
Un bond en avant se produit en 1963. Philips dévoile sa cassette compacte, un format minuscule comparé aux imposantes bobines de l’époque. Le géant néerlandais fait un coup de maître en rendant sa licence accessible gratuitement. Le format explose. Les fabricants japonais perfectionnent la technique avec des matériaux magnétiques novateurs et des têtes de lecture ultrasensibles.
Les décennies 1970-1980 voient jaillir des innovations majeures. Les particules de chrome puis de métal densifient l’enregistrement. Les têtes de lecture s’affinent grâce au Sendust et aux alliages amorphes. La bande magnétique a bouleversé notre rapport au son et à la mémoire. Elle a engendré des pratiques culturelles inédites comme l’écoute nomade, symbolisée par le Walkman de Sony en 1979.
L’ère numérique des années 1980 transforme la bande sans la tuer. Pour l’informatique, DLT (Digital Linear Tape) apparaît en 1984, suivi par DDS (Digital Data Storage) en 1989. Ces formats offrent des capacités toujours plus vastes. Pour les centres de données du XXIe siècle, elle demeure une solution d’archivage privilégiée, avec un rapport coût/téraoctet imbattable.
L’histoire de ce ruban brun démontre une adaptation constante. Né pour le son, il conquiert les données informatiques, la vidéo, l’archivage professionnel. À l’heure du cloud, la bande conserve un atout maître face aux cybermenaces : sa capacité d’isolation physique (airgap). Ce rempart contre les rançongiciels en fait l’ultime protection des données critiques. Cette résistance aux attaques, couplée à sa rentabilité pour stocker d’immenses volumes, lui assure une place durable dans les architectures modernes, où elle complète les disques durs et les solutions cloud.
Ferranti Mark I
Durant l’hiver 1951, l’Université de Manchester reçoit des mains de la société Ferranti une machine qui va changer la donne : le Mark I. Ce calculateur électronique britannique devance de quelques mois l’UNIVAC I américain et s’inscrit dans l’histoire comme le premier ordinateur commercialisé. Cette aventure technique n’aurait jamais vu le jour sans l’intuition de Sir Ben Lockspeiser. Ce haut fonctionnaire du ministère britannique de l’Approvisionnement avait saisi l’importance de relier la recherche universitaire au monde industriel.
En réalité, cette machine prolonge les travaux de F.C. Williams et Tom Kilburn. Ces chercheurs avaient déjà conçu un prototype fonctionnel à l’Université de Manchester. Le gouvernement britannique, désireux de valoriser cette avancée, confie à l’entreprise Ferranti la tâche de transformer l’expérimental en commercial. Si l’architecture générale est fidèle à l’original, les ingénieurs de Ferranti y ajoutent leur touche : un jeu d’instructions revu, des registres d’index supplémentaires (les fameux B-lines) et des fonctions inédites comme un générateur de nombres aléatoires.
La mémoire du Mark I reflète les contraintes technologiques de l’époque. D’un côté, une mémoire électronique construite autour des tubes Williams, rapide mais limitée à 20 480 bits. De l’autre, un tambour magnétique plus lent mais avec 655 360 bits répartis sur 256 pistes de 2 560 bits, double système annonçant l’architecture hiérarchique des mémoires modernes.
Programmer le Mark I relevait presque de l’épreuve initiatique. Alan Turing, figure légendaire du calcul et alors chercheur à Manchester, rédige le premier manuel de cette machine. Son approche consiste en du code machine sans fioritures, sans concessions aux limites cognitives humaines. À Cambridge, pendant ce temps, David Wheeler avait créé pour l’EDSAC un assembleur rudimentaire mais combien plus accessible. Deux visions s’opposaient.
L’interface avec le monde extérieur passait par des bandes perforées à cinq trous. Le flux d’entrée atteignait 400 caractères par seconde grâce au lecteur photoélectrique conçu par Ferranti. En sortie, une perforatrice plus modeste (33 caractères par seconde) et une imprimante télétype traduisaient les résultats des calculs. Un haut-parleur complétait le dispositif, alertant l’opérateur par des signaux sonores quand son attention devenait nécessaire.
Les mathématiciens furent parmi les premiers à s’emparer de cette puissance de calcul inédite. Ils l’utilisèrent pour explorer les nombres de Mersenne ou tester des aspects de l’hypothèse de Riemann. Les physiciens s’en servirent pour des calculs de tracé de rayons en optique. La vitesse de traitement des données ouvrait des possibilités nouvelles pour la recherche, malgré une fiabilité qui laissait parfois à désirer.
L’aventure commerciale du Mark I raconte aussi les difficultés de l’industrie informatique britannique. De 1951 à 1957, neuf exemplaires seulement trouvèrent preneurs : sept Mark I Star et deux Mark I. L’étroitesse du marché britannique limitait les perspectives de croissance. Quand IBM débarqua au Royaume-Uni avec son modèle de location, la concurrence devint féroce pour les constructeurs locaux.
L’histoire du Mark I se lit aussi à travers les relations complexes entre Ferranti et les organismes gouvernementaux, notamment la National Research Development Corporation (NRDC). Le financement public a certes rendu possible cette aventure, mais les négociations souvent tendues entre Ferranti et la NRDC ont parfois ralenti le projet. Sir Vincent de Ferranti défendait âprement les intérêts de son entreprise familiale, cherchant à minimiser les risques financiers dans cette aventure incertaine.
Le contraste entre le potentiel technique britannique et sa concrétisation commerciale saute aux yeux dans les statistiques : en 1960, le Royaume-Uni comptait 240 ordinateurs en fonction, contre 5 400 aux États-Unis. Pourtant, le Ferranti Mark I occupe une place à part dans le panthéon informatique. Sa mémoire à plusieurs niveaux, son système d’index et son architecture générale ont façonné la conception des ordinateurs qui ont suivi. Premier calculateur commercial, il matérialise ce moment où la recherche universitaire rencontre la production industrielle.
Cette expérience a aussi réorienté la trajectoire de Ferranti. Face aux réalités économiques, l’entreprise a progressivement abandonné le marché des grands systèmes pour se concentrer sur les applications militaires, les mini-ordinateurs puis les microprocesseurs. En 1963, Ferranti quittait définitivement le secteur des ordinateurs centraux.
LEO I
Au milieu du XXe siècle, J. Lyons & Co dominait le marché alimentaire au Royaume-Uni. Issue des idées visionnaires de la famille Salmon-Gluckstein à la fin du XIXe, cette entreprise gérait un réseau tentaculaire de salons de thé élégants, restaurants populaires et boulangeries industrielles à travers tout le pays.
Contrairement aux autres sociétés, Lyons cultivait une atmosphère propice à l’innovation technique. La raison en était simple : chaque jour, des milliers de transactions modestes s’accumulaient, chacune générant une marge infime. La survie financière exigeait donc une rigueur presque maniaque dans la gestion administrative. Cette particularité avait poussé les dirigeants à recruter dès 1923 un mathématicien de Cambridge, John Simmons, capable d’apporter une dimension scientifique à leurs méthodes de travail.
Au printemps 1947, deux cadres de l’entreprise, Oliver Standingford et Raymond Thompson, s’envolèrent vers l’Amérique. Leur mission initiale concernait l’étude d’équipements de bureau modernes, mais ils tombèrent par hasard sur des informations concernant l’ENIAC. Ces gigantesques machines de calcul, alors cantonnées aux laboratoires scientifiques, éveillèrent leur curiosité. Ils pressentirent que ces calculs automatisés pourraient transformer radicalement la bureaucratie de Lyons.
Leur intuition les conduisit jusqu’à l’université de Cambridge, où Maurice Wilkes travaillait sur l’EDSAC. À leur retour, ils rédigèrent un rapport audacieux. Non contents de suggérer l’adoption de l’informatique pour leur entreprise, ils proposèrent que Lyons fabrique sa propre machine. Cette idée, qui semblerait aujourd’hui absurde pour une société alimentaire, s’inscrivait parfaitement dans la philosophie d’indépendance technique de l’entreprise, habituée à concevoir ses propres outils industriels.
La direction valida le projet et déboursa 3 000 livres sterling pour soutenir les travaux de Wilkes, s’assurant en échange une assistance technique précieuse. Pour mener à bien cette aventure, l’entreprise embaucha le Dr John Pinkerton, un brillant ingénieur recommandé par Wilkes. David Caminer, responsable des systèmes chez Lyons, reçut la tâche de développer les applications et méthodes de programmation adaptées aux besoins spécifiques de l’entreprise.
La construction du LEO I (Lyons Electronic Office) commença en 1949. Ce colosse occupait plus de 450 mètres carrés et fonctionnait grâce à environ 6 000 tubes à vide répartis dans 21 armoires métalliques imposantes. Bien que basé sur l’architecture de l’EDSAC, LEO I intégrait des modifications substantielles pour traiter efficacement les données commerciales. Les ingénieurs accordèrent une attention particulière aux systèmes d’entrée-sortie, combinant cartes perforées et bandes de papier pour l’alimentation en données, complétées par des imprimantes et perforateurs pour la restitution des résultats.
Le 29 novembre 1951, LEO I accomplit sa première tâche régulière, l’évaluation hebdomadaire de la production des boulangeries Lyons. Ce programme analysait les chiffres de fabrication de pains, gâteaux et tartes provenant de douze sites différents. Il calculait automatiquement la valorisation en intégrant le coût des matières premières, les salaires et les frais indirects. Aucun ordinateur n’avait jamais effectué pareille tâche de gestion auparavant.
Ce premier succès encouragea l’équipe à développer d’autres applications : gestion des stocks, calcul des meilleurs mélanges de thé, organisation des livraisons aux différents points de vente, facturation automatisée. Un nouveau cap fut franchi le 12 février 1954, lorsque LEO I traita la paie de 1 670 employés des boulangeries, produisant directement les chèques de salaire sans système de secours.
Les prouesses de cette machine attirèrent bientôt l’attention d’organisations extérieures. Le service météorologique britannique l’utilisa pour ses prévisions, l’administration fiscale pour calculer ses barèmes d’imposition, et British Railways pour déterminer les distances entre toutes ses gares. Le succès de ces prestations poussa Lyons à créer en 1954 une filiale spécialisée, LEO Computers Limited, pour commercialiser cette technologie.
Cette histoire raconte un curieux paradoxe : pendant que les fabricants traditionnels d’équipements de bureau et les géants de l’électronique hésitaient, une chaîne de restaurants et de salons de thé créait le premier ordinateur pour une application commerciale viable au monde. LEO I fonctionna jusqu’en janvier 1965, avant de céder sa place aux modèles plus performants LEO II et LEO III qui équipèrent de nombreuses entreprises et administrations britanniques.
La saga LEO se poursuivit à travers une série de fusions industrielles : d’abord avec English Electric en 1963, puis avec d’autres sociétés pour former International Computers Limited en 1968. Le dernier LEO III s’éteignit discrètement en 1981 dans les locaux de la poste britannique.
UNIVAC I
Le premier ordinateur commercial produit cette fois en série a vu le jour sous le nom d’UNIVAC I, acronyme d’Universal Automatic Computer. Son histoire démarre avec deux ingénieurs talentueux de l’université de Pennsylvanie : J. Presper Eckert et John Mauchly. Ces visionnaires venaient tout juste d’achever la conception de l’ENIAC durant la Seconde Guerre mondiale quand ils eurent l’intuition du potentiel commercial des ordinateurs.
Fin 1945, alors que l’encre des plans de l’ENIAC séchait à peine, Eckert et Mauchly prirent contact avec le Bureau du Recensement américain. Leur proposition était un ordinateur capable de digérer rapidement les données démographiques grâce à l’utilisation novatrice de bandes magnétiques comme support de stockage.
Au printemps 1946, nos deux ingénieurs quittèrent l’université de Pennsylvanie, décidés à tirer profit de leur savoir-faire unique en passant dans le monde de l’entreprise privée. Ils créèrent d’abord un simple partenariat avant de fonder, en décembre 1947, l’Eckert-Mauchly Computer Corporation. Au-delà du calcul scientifique, ils envisageaient des applications pour la comptabilité, la gestion documentaire et l’analyse statistique.
L’UNIVAC évolua constamment durant sa phase de développement. Conçu initialement comme un outil statistique pour le Bureau du Recensement, le projet s’élargit suite aux discussions avec A.C. Nielsen Company et la compagnie d’assurance Prudential. Ces nouveaux besoins orientèrent la machine vers le traitement de données alphanumériques, indispensables pour la gestion des polices d’assurance, la facturation et les calculs actuariels.
Les soucis d’argent n’épargnèrent pas le développement de cette machine. En 1948, American Totalisator Company injecta 500 000 dollars dans l’entreprise contre 40% des actions. Malgré cette bouffée d’oxygène, les difficultés s’accumulèrent. La situation devint si critique en 1950 qu’Eckert et Mauchly durent se résoudre à vendre leur société à Remington Rand, qui reprit le flambeau du développement et de la commercialisation.
Sur le plan technique, l’UNIVAC I brillait par ses innovations. Sa mémoire à mercure stockait 1 000 mots de 12 caractères chacun. Utilisées pour l’entrée et la sortie des données, les bandes magnétiques traitaient 20 000 caractères par seconde. La machine réalisait une addition en 525 microsecondes et une multiplication en 2 150 microsecondes. Sa fiabilité remarquable reposait sur un système d’auto-vérification : près du tiers des circuits avait pour unique fonction de détecter les erreurs.
La conception modulaire de l’UNIVAC I constituait l’une de ses forces. Les tâches ne nécessitant pas directement l’unité centrale étaient déléguées à des modules auxiliaires autonomes, chacun disposant de sa propre alimentation. Cette architecture permettait de réaliser en parallèle la saisie sur bande magnétique, la conversion des cartes perforées, et l’impression, sans ralentir le traitement principal.
Le Bureau du Recensement reçut le premier exemplaire en mars 1951, après une batterie de tests draconiens. Ces épreuves, élaborées conjointement par le Bureau des Standards et le Bureau du Recensement, évaluaient autant les capacités de calcul que les performances du système d’entrée-sortie. L’ordinateur devait notamment prouver sa capacité à exécuter 2 500 opérations en 1,26 seconde et à manipuler correctement 1,4 million de caractères sur bande magnétique.
L’arrivée de l’UNIVAC I transforma l’informatisation des organisations. Le Bureau du Recensement l’utilisa pour ses rapports mensuels sur l’économie et le recensement des entreprises. General Electric, à Louisville, s’en servit pour la paie, le suivi des matériaux et l’analyse commerciale. Franklin Life Insurance Company l’adopta pour gérer la facturation des primes, calculer les commissions et tenir la comptabilité des dividendes.
L’US Air Force illustra bien le potentiel de cette machine. Son « Air Materiel Command » gérait un stock pharaonique de 1,2 million d’articles, environ six fois l’inventaire d’un grand magasin. Grâce à l’UNIVAC, l’établissement du budget prévisionnel des pièces détachées pour l’aviation ne prenait plus qu’une journée, contre plusieurs semaines auparavant avec les systèmes à cartes perforées.
La maintenance de ce monstre technologique exigeait une discipline de fer. Le Bureau du Recensement faisait tourner son système 24 heures sur 24, sept jours sur sept, hormis quatre créneaux de huit heures dédiés à la maintenance préventive. Cette dernière mobilisait environ 21% du temps disponible. Les tubes électroniques causaient les pannes les plus fréquentes : en moyenne, deux tubes rendaient l’âme chaque semaine et devaient être remplacés.
La formation des opérateurs s’avéra déterminante pour tirer le meilleur parti du système. Remington Rand comprit très vite qu’un UNIVAC I nécessitait un superviseur du calibre de celui gérant une grande installation de cartes perforées, mais avec une équipe réduite d’opérateurs hautement qualifiés. Cette expertise humaine permettait tant de prendre les bonnes décisions opérationnelles que de repérer précocement les dysfonctionnements.
L’expérience acquise avec le premier UNIVAC I engendra des améliorations continues. Les ingénieurs identifièrent et corrigèrent progressivement divers problèmes : oscillations parasites dans certains circuits, rebonds dans les relais des Uniservo (unités de bande magnétique), et autres soucis mécaniques. Ces corrections bénéficièrent naturellement aux modèles suivants.
En octobre 1954, Remington Rand avait livré douze UNIVAC I et engrangé des commandes pour quatre systèmes supplémentaires. Ce succès commercial démontra la viabilité du marché des ordinateurs professionnels. L’UNIVAC I fut le premier ordinateur d’une industrie informatique tournée vers les applications commerciales, distincte des calculateurs purement scientifiques qui dominaient jusque-là. Sa réussite donna raison à la vision d’Eckert et Mauchly : celle d’un ordinateur universel capable de servir des applications diverses, du calcul scientifique à la gestion d’entreprise.
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.
IBM 701
Au début des années 50, Thomas J. Watson Sr. donna son accord à la proposition de James Birkenstock pour créer une machine de calcul novatrice. Cette dernière utiliserait une mémoire à tubes cathodiques d’environ 20 000 chiffres et disposerait d’un cycle d’horloge capable de multiplier deux nombres en une milliseconde. Baptisée d’abord « Defense Calculator », la machine vit le jour pendant la guerre de Corée à la demande du Département de la Défense américain. Une équipe dirigée par J. A. Haddad et Nathan Rochester fut chargée de son développement.
Le monde ne comptait qu’une vingtaine d’ordinateurs numériques fonctionnels. Birkenstock pensait qu’une trentaine de ces machines trouveraient preneur dans l’industrie de la défense. La création du Defense Calculator fut relativement rapide grâce à l’expérience d’IBM dans ses produits antérieurs. L’équipe adopta une philosophie minimaliste : des équipements simples, un schéma logique épuré et l’absence de dispositifs superflus.
La question de la longueur des mots suscita de nombreux débats chez IBM. Werner Buchholz souligna l’importance de ce choix technique, car une longueur insuffisante obligerait à utiliser plusieurs mots pour un seul nombre. À l’inverse, une longueur excessive ralentirait les opérations et augmenterait les coûts. Après une étude des machines existantes, IBM détermina qu’une longueur entre 10 et 12 chiffres (35 à 41 bits) serait idéale. La technologie des bandes magnétiques suggérait que 6 canaux parallèles représentaient un optimum pour le stockage. IBM fixa donc la taille de mot à 36 bits pour son 701.
Le 29 avril 1952, Thomas J. Watson annonça officiellement l’IBM 701 Electronic Data Processing System lors d’une réunion annuelle. L’appellation « Data Processing » soulignait sa capacité à traiter différents types de données dans des contextes variés. Le premier modèle arriva au siège d’IBM à New York en décembre 1952. Installé dans l’ancienne salle du SSEC, il devint une attraction pour les passants. Cette machine servit aux opérations de conseil technique pour divers clients, avec une équipe de scientifiques IBM dédiée à la résolution de leurs problèmes.
La deuxième machine (numéro de série 1) fut livrée au Los Alamos Scientific Laboratory le 1er avril 1953. Trois jours suffirent pour la rendre opérationnelle. Elle fonctionna jusqu’à l’automne 1956, avant qu’une seconde machine ne soit installée en 1954. Sa mémoire électrostatique, malgré son manque de fiabilité, contenait 2048 mots de 36 bits. Le système comprenait l’unité centrale, un lecteur de cartes, une imprimante, une unité de stockage sur tambour magnétique, deux lecteurs de bandes magnétiques et une perforatrice de cartes.
Le 701 fut la première machine produite en quantité suffisante pour répondre aux besoins d’une clientèle en expansion. Sa conception modulaire, avec ses composants détachables, marqua le début d’une nouvelle philosophie chez IBM : construire des machines évolutives plutôt que des systèmes monolithiques à remplacer intégralement. La configuration standard comportait onze éléments : deux unités de bande magnétique (chacune avec deux lecteurs), une unité de mémoire sur tambour magnétique, une unité de stockage électrostatique à tube cathodique, une unité arithmétique et de contrôle en forme de L avec panneau opérateur, un lecteur de cartes, une imprimante, une perforatrice de cartes et trois unités d’alimentation.
L’IBM 701 affichait une compacité remarquable. Sa logique tenait dans des modules à 64 broches, chacun portant une rangée de 8 tubes à vide sur la façade. Les opérations logiques s’exécutaient via des diodes au germanium situées à la base des modules. Ces derniers s’intégraient dans un fond de panier conçu pour permettre leur remplacement sans éteindre le système. IBM fut l’un des premiers à utiliser les fonds de panier comme moyen d’accueillir différents types de modules fonctionnels.
L’unité de contrôle analytique (ACU) regroupait dans une grande armoire les composants arithmétiques, les circuits de contrôle d’entrée-sortie et les circuits de contrôle du programme stocké. Une armoire distincte abritait la console opérateur. L’ACU fonctionnait avec une cadence de répétition d’impulsions de 1 mégahertz. Un anneau de 12 étages générait douze impulsions de 1 microseconde formant le cycle machine de base. Cette vitesse répondait principalement aux exigences de régénération de l’unité de stockage électrostatique. Cette dernière contenait 72 tubes cathodiques stockant 10 240 chiffres, soit 2 048 mots de 36 bits, avec un temps d’accès d’environ 12 microsecondes. Les données y étaient accessibles de façon aléatoire. Le coût par bit avoisinait un dollar, bien moins que le stockage à tubes à vide. La location mensuelle de cette unité s’élevait à environ 2 600 dollars.
Le système d’entrées-sorties du 701 assurait cinq fonctions : sélection d’une unité pour lecture, écriture ou contrôle ; verrouillage de l’opération avec l’exécution d’un programme ; copie des données entre l’unité de stockage électrostatique et les unités d’E/S ; synchronisation des signaux entre l’unité choisie et le CPU ; déconnexion de l’unité d’E/S une fois son travail achevé.
En 1956, l’IBM 737 Magnetic Core Storage Unit vint remplacer l’unité de stockage électrostatique. Dotée d’une capacité de 4 096 mots de 36 bits, elle réduisit le temps d’addition, accès compris, de 60 à 36 microsecondes. Sa location mensuelle atteignait environ 6 100 dollars.
Comme un ordinateur scientifique binaire à adresse unique, l’IBM 701 disposait d’une taille de mot de 36 bits et d’un jeu de 33 instructions. Le CPU du 701 restait vide à 25% pour faciliter la correction d’erreurs ou l’ajout de fonctionnalités. Sa location mensuelle s’élevait à environ 16 000 dollars. Fin 1954, 18 machines étaient installées et pleinement fonctionnelles.
Son successeur, le 704, combla cet espace avec des fonctions supplémentaires. S’ensuivit une lignée de machines toujours plus puissantes et rapides, conservant une compatibilité ascendante et intégrant de nouvelles fonctionnalités. Cette évolution culmina avec le 7094 II et ses versions simplifiées, les 7040 et 7044.
IBM 702
Après le 701, IBM créa le 702, parmi les premiers ordinateurs destinés aux applications de gestion, avec le LEO et l’UNIVAC. Présentée en 1954, cette machine marqua une rupture avec l’ère des équipements mécanographiques à cartes perforées qui dominaient alors le traitement administratif. General Electric figura parmi ses premiers acquéreurs, cette entreprise cherchant à moderniser ses méthodes de gestion dans un contexte social tendu d’après-guerre. L’automatisation des tâches administratives représentait pour GE un levier pour diminuer sa dépendance envers le personnel syndiqué, en plein conflit avec l’organisation United Electrical Workers.
L’IBM 702 se démarquait par sa mémoire électrostatique basée sur des tubes à rayons cathodiques, stockant jusqu’à 10 000 caractères. Cette capacité correspondait à environ 125 cartes perforées, un bond considérable par rapport aux machines antérieures qui ne géraient qu’une ou deux cartes simultanément. Des tambours magnétiques supplémentaires pouvaient étendre cette capacité, chacun équivalant à 750 cartes. La machine innovait avec son architecture à longueur de mot variable. Cette approche différait des ordinateurs scientifiques contemporains utilisant des mots de taille fixe. L’IBM 702 traitait ainsi des données allant d’un à plusieurs centaines de caractères, une souplesse idéale pour les applications commerciales manipulant des informations comme les noms, adresses et montants. Le traitement numérique s’effectuait en décimal plutôt qu’en binaire, choix révélateur de la volonté d’IBM de simplifier la programmation pour les usages commerciaux. L’ordinateur manipulait aussi bien les lettres que les chiffres, un avantage pour les données d’entreprise. Chaque caractère utilisait un codage sur sept bits, dont un bit de parité pour détecter les erreurs.
Son architecture adoptait un fonctionnement série, traitant les caractères séquentiellement. Cette méthode, bien que théoriquement moins rapide que le traitement parallèle des ordinateurs scientifiques, offrait une grande agilité pour manipuler et réorganiser les données, opérations courantes dans le monde de la gestion.
L’IBM 702 brillait par sa vitesse en entrée-sortie. Tandis que les équipements à cartes perforées classiques traitaient environ 100 cartes par minute, ses bandes magnétiques atteignaient l’équivalent de 3 500 cartes par minute, rendant possible le traitement de volumes de données jusque-là inaccessibles.
La programmation s’exécutait en langage machine. Chaque instruction comportait un code opération d’un caractère suivi d’une adresse de quatre caractères. Les programmes résidaient dans la même mémoire que les données, selon le principe de l’architecture von Neumann. Son jeu d’instructions comprenait des opérations arithmétiques, logiques et de transfert, conçues pour les applications commerciales. Les adresses mémoire étaient absolues, forçant une reprogrammation lors de toute modification dans l’organisation des données. Le programmeur devait tenir compte des délais d’accès à la mémoire électrostatique pour optimiser les performances.
L’installation d’un IBM 702 chez General Electric en 1954 illustre l’informatisation des entreprises à cette période. La première application visée fut un système de paie, projet qui mobilisa une équipe conséquente réunissant personnel de GE, consultants d’Arthur Andersen et ingénieurs d’IBM. En parallèle, une application de contrôle de fabrication fut développée pour le département « Lave-vaisselle et Broyeurs ». Fait notable, cette dernière devint opérationnelle avant le système de paie malgré des ressources plus limitées, préfigurant les observations que Fred Brooks formulerait plus tard dans son essai « The Mythical Man-Month » en 1975 sur la gestion des projets informatiques : l’ajout de personnel à un projet en retard le ralentit davantage, les petites équipes cohérentes surpassent souvent les grandes structures fragmentées, et la complexité de communication croît exponentiellement avec la taille de l’équipe.
La fiabilité constituait un critère primordial. Pour une machine dédiée aux opérations financières, l’IBM 702 intégrait de nombreux mécanismes de contrôle comme, notamment le bit de parité pour repérer les erreurs dans la transmission et le stockage des données. Ces vérifications automatiques s’ajoutaient aux procédures comptables traditionnelles, comme l’utilisation de totaux de contrôle.
L’IBM 702 inaugura une nouvelle page dans l’histoire d’IBM et de l’informatique commerciale. Son succès valida l’intérêt des ordinateurs électroniques pour les applications de gestion, créant un marché qui allait s’imposer. Les concepts introduits, comme le traitement de données à longueur variable et l’orientation vers les applications commerciales, influencèrent durablement l’évolution des systèmes d’entreprise.
La machine eut plusieurs successeurs, notamment l’IBM 705, qui reprit ses principes fondamentaux en y apportant des améliorations techniques. Néanmoins, son véritable héritage se retrouve dans la famille System/360, lancée en 1964, qui unifia les gammes scientifiques et commerciales d’IBM dans une architecture commune. Le System/360 conserva certaines caractéristiques de l’IBM 702, comme l’aptitude à traiter efficacement données numériques et alphabétiques.
L’évolution des ordinateurs transforme des outils de calcul scientifique en machines de traitement polyvalentes. Cette mutation accompagna la modernisation des entreprises américaines durant les années 1950, contribuant à l’émergence de l’informatique de gestion telle que nous la connaissons au XXIe siècle.
Assembleur
Dans les années 1940-1950, les programmeurs étaient contraints de coder en binaire pur. Ce travail fastidieux engendrait maintes erreurs. L’assembleur surgit alors comme une réponse ingénieuse : remplacer les séquences binaires par des mnémoniques plus faciles à retenir. Cette transition marqua le premier pas vers l’abstraction dans l’art de la programmation.
L’assembleur évolue en 1978 avec l’apparition du microprocesseur Intel 8086. Ce composant 16 bits apporta une architecture qui influença durablement le monde de la programmation bas niveau. La saga continua avec les 80186 et 80286 en 1982, qui maintinrent une compatibilité ascendante précieuse pour la continuité des applications existantes.
Le bond vers les 32 bits s’opéra avec le 80386 en 1985, suivi du 80486 quatre ans plus tard. Cette lignée, baptisée x86, établit un standard qui traverse encore les décennies. Le jeu d’instructions s’enrichit sans cesse tout en conservant sa compatibilité historique, gage de pérennité pour les développements logiciels.
Les années 1990 virent le monopole d’Intel s’effriter. AMD lança ses propres processeurs compatibles avec les séries K5, K6 et K7. En 2003, la firme révolutionna le marché avec l’architecture x86-64, extension 64 bits du jeu d’instructions classique. D’autres fabricants comme VIA et Transmeta rejoignirent l’aventure dès 2000. Le jeu d’instructions x86 s’étoffa constamment. Intel déploya diverses extensions : MMX, puis les différentes versions de SSE, tandis qu’AMD ripostait avec 3D Now!. En 2012, ce jeu atteignit plus de 900 instructions, témoignant de la sophistication grandissante de cette architecture.
Les outils modernes tels que MASM, NASM ou GNU Assembler ont transformé le travail du programmeur avec leurs fonctionnalités avancées. Les macros, les outils de débogage et d’optimisation rendent aujourd’hui la programmation en assembleur bien moins rébarbative qu’à ses débuts. Certains domaines valorisent toujours l’assembleur. Les systèmes embarqués, où chaque octet compte, y trouvent un allié de choix. Les créateurs de systèmes d’exploitation l’utilisent pour les sections critiques nécessitant un contrôle total du matériel. Les développeurs de jeux vidéo y font appel pour extraire la quintessence des performances dans les parties gourmandes en calculs.
La segmentation représente une spécificité notable de l’architecture x86. Cette approche divise l’espace mémoire en zones distinctes dédiées au code, aux données et à la pile. Créée initialement pour pallier les limites matérielles des premiers processeurs, elle s’avéra finalement un atout pour sécuriser les systèmes en cloisonnant les accès aux différentes régions mémoire. L’interface entre assembleur et système d’exploitation s’est normalisée au fil du temps. Les appels système, notamment sous DOS via l’interruption 21h, ont donné aux programmes assembleur un accès structuré aux ressources système. Cette normalisation a nettement amélioré la portabilité et simplifié la création d’applications.
Le traitement des nombres à virgule flottante illustre l’évolution de l’assembleur x86. Les premiers processeurs de la gamme nécessitaient un coprocesseur mathématique externe (x87). L’intégration de cette unité directement dans le cœur du processeur, à partir du 486, a simplifié l’écriture du code assembleur tout en décuplant les performances. Les processeurs contemporains transforment en interne les instructions x86 complexes en micro-opérations plus élémentaires. Cette approche marie astucieusement les bénéfices de l’architecture CISC pour la programmation avec l’efficacité de l’architecture RISC pour l’exécution, préservant ainsi la richesse du jeu d’instructions tout en maximisant les performances.
Bien que souvent oublié, l’enseignement de l’assembleur demeure primordial dans la formation des informaticiens du XXIe siècle. Il offre une compréhension du fonctionnement des ordinateurs et fournit une base solide pour appréhender les concepts de bas niveau. Cette maîtrise s’avère essentielle pour développer des programmes efficaces, notamment dans les secteurs où la performance prime, et peut-être aussi pour réduire la consommation de ressources et d’énergie.
Loin d’être figé, l’assembleur continue d’évoluer. L’émergence d’instructions vectorielles et de registres élargis facilite désormais l’exploitation des capacités des processeurs modernes pour le calcul parallèle et le traitement multimédia. Ces avancées prouvent la remarquable adaptabilité de l’assembleur face aux exigences sans cesse renouvelées de l’informatique.
IBM 650
Le modèle 650 d’IBM, lancé sur le marché en 1954, est la première machine informatique vendue à grande échelle – plus de mille exemplaires – qui ouvrit les portes d’une nouvelle ère numérique. Surnommé « calculateur à tambour magnétique », l’IBM 650 présentait une architecture remarquable pour son temps. Son cœur battait au rythme d’un tambour rotatif nickel-cobalt de 10 centimètres de diamètre et 40 centimètres de longueur. Ce cylindre tournait à la vitesse vertigineuse de 12 500 tours par minute et stockait 2 000 « mots » de dix chiffres. La disposition particulière des données en 40 bandes de 50 positions obligeait les programmeurs à une gymnastique intellectuelle constante pour minimiser les temps d’accès liés à la rotation du tambour.
L’architecture physique du système se divisait en trois blocs distincts : la console centrale abritant le fameux tambour et les circuits arithmétiques, l’unité de lecture-perforation (modèle 533) pour l’entrée et la sortie des données, et l’unité d’alimentation (modèle 655) qui transformait le langage des cartes perforées en signaux électroniques compréhensibles par la machine.
Une particularité technique de l’IBM 650 résidait dans son jeu d’instructions « une plus une adresse ». Chaque instruction contenait l’opération à réaliser ainsi que l’emplacement de l’instruction suivante. Cette approche, parfois décriée par les théoriciens modernes, s’avéra brillante dans le contexte des contraintes du tambour magnétique. Avec seulement 44 codes opération disponibles, la machine forçait à l’économie et à l’élégance dans l’écriture des programmes. Donald Knuth, qui fit ses premiers pas en programmation sur cette machine durant ses études, garda toute sa vie une tendresse particulière pour cette sobriété qui stimulait l’inventivité.
La machine évolua et le système 653 vint enrichir la configuration initiale avec des registres d’index, une unité de calcul en virgule flottante et 60 mots de mémoire rapide. Des périphériques supplémentaires comme les bandes magnétiques et les imprimantes complétèrent progressivement l’écosystème du 650, étendant ses capacités tout en maintenant la compatibilité avec les programmes existants.
L’aspect logiciel connut un développement tout aussi riche. L’assembleur SOAP (Symbolic Optimal Assembly Program) créé par Stan Poley libéra les programmeurs de la programmation directe en code machine. L’interpréteur des Bell Labs, œuvre de Wolontis, facilita considérablement les calculs scientifiques grâce à la virgule flottante. Une vaste bibliothèque de plus de 200 programmes vit le jour, couvrant des domaines aussi variés que les mathématiques pures, les statistiques, la gestion ou la résolution d’équations différentielles.
À Carnegie Tech (aujourd’hui Carnegie Mellon), Herbert Simon et Allen Newell développèrent sur l’IBM 650 leur langage IPL-V (Information Processing Language), précurseur dans le domaine de l’intelligence artificielle. Ce langage de traitement de listes introduisit des concepts déterminants comme la programmation descendante et les sous-routines fermées – principes qui devinrent plus tard des fondamentaux de la programmation structurée.
La robustesse et l’accessibilité relative de l’IBM 650 le transformèrent en outil pédagogique sans égal. Contrairement à ses contemporains qui exigeaient un personnel hautement spécialisé, cette machine pouvait être utilisée directement par les étudiants et chercheurs. Des milliers de programmeurs firent leurs classes sur ses consoles, formant la première génération massive de professionnels de l’informatique.
Les limitations techniques de la machine – mémoire restreinte et temps d’accès variables au tambour – se révélèrent paradoxalement fécondes. Elles forcèrent les programmeurs à développer des techniques d’optimisation sophistiquées et à réfléchir à la structure de leurs algorithmes. Ces pratiques influencèrent durablement l’enseignement et la conception des programmes informatiques jusqu’à nos jours.
Au-delà des spécifications techniques, l’IBM 650 représente le moment où l’informatique quitta les laboratoires pour entrer dans les bureaux et les universités. Ce n’était plus une curiosité expérimentale mais un outil pratique, fiable et relativement accessible.
IBM 704
En 1954, IBM lance sur le marché un ordinateur qui changera la donne : l’IBM 704. Premier calculateur produit en série doté d’une unité de calcul en virgule flottante, cette machine s’éloigne radicalement des IBM 701 et 702 qui l’ont précédée.
Qu’apportait de neuf cette machine ? D’abord une mémoire à tores de ferrite remplaçant les tubes Williams utilisés jusqu’alors. L’ajout de trois registres d’index transformait aussi la façon de programmer. Pour tirer parti de ces atouts techniques, les concepteurs ont revu le format des instructions, utilisant désormais le mot complet de 36 bits. Ce jeu d’instructions deviendra l’ADN de toute la lignée scientifique IBM 700/7000 dans les années suivantes.
Sous le capot de l’IBM 704 se cachait un accumulateur de 38 bits, un registre multiplicateur-quotient de 36 bits et trois registres de décrémentation de 15 bits. Ces derniers présentaient la particularité de soustraire leur contenu de l’adresse de base au lieu d’y être ajouté. La machine autorisait l’usage simultané des trois registres dans une instruction, via un champ d’étiquette de 3 bits servant de carte binaire pour indiquer les registres participants. Une astuce technique qui mérite d’être soulignée.
L’architecture de l’IBM 704 reposait sur deux formats d’instruction : le « Type A » et le « Type B ». Le premier combinait un préfixe de trois bits (code instruction), un champ de décrémentation (15 bits), un champ d’étiquette (3 bits) et un champ d’adresse (15 bits). Le second associait un code d’instruction de 12 bits, un champ de drapeaux de 2 bits, quatre bits non utilisés, un champ d’étiquette de 3 bits et un champ d’adresse de 15 bits.
Entre 1955 et 1960, IBM a vendu 123 exemplaires de cette machine. Ses performances étaient d’environ 40 000 instructions par seconde, un nombre qui impressionnait à l’époque. Son prix conséquent la réservait aux grands laboratoires scientifiques et aux groupes industriels.
Mais l’IBM 704 n’a pas seulement brillé par son matériel, il a aussi porté deux créations logicielles importantes. Le FORTRAN, d’abord, créé spécifiquement pour cette machine. Ce langage rendait la programmation scientifique plus naturelle, avec une écriture de code proche des équations mathématiques. Un traducteur automatique convertissait ce code en langage machine, réduisant ainsi les erreurs et le temps de programmation.
LISP, autre enfant prodige né sur l’IBM 704, conserve encore aujourd’hui dans ses primitives car et cdr la trace de cette filiation. Ces noms, abréviations de « Contents of Address part of Register number » et « Contents of Decrement part of Register number », reflètent directement l’architecture de la machine, où ces champs servaient à stocker respectivement la tête et la queue des listes chaînées.
La musique assistée par ordinateur a fait ses premiers pas sur cette machine. Max Mathews y développa MUSIC, ouvrant un territoire vierge à l’exploration artistique. En 1962, aux Bell Labs, le physicien John Larry Kelly Jr fit chanter l’IBM 704. Son synthétiseur vocoder reproduisit « Daisy Bell » avec un accompagnement musical signé Max Mathews. Arthur C. Clarke, témoin émerveillé de cette démonstration, l’immortalisa dans la scène finale de son roman « 2001, l’Odyssée de l’espace », où l’ordinateur HAL 9000 entonne cette mélodie.
L’IBM 704 s’est illustrée dans des domaines scientifiques variés. Ed Thorp l’utilisa pour modéliser ses équations sur les probabilités au blackjack grâce au FORTRAN. La machine participa à la course à l’espace : à l’automne 1957, elle devint le calculateur officiel de l’Operation Moonwatch du Smithsonian Astrophysical Observatory. IBM détacha quatre scientifiques – Giampiero Rossoni, John Greenstadt, Thomas Apple et Richard Hatch – pour aider les chercheurs du Smithsonian à calculer les trajectoires des premiers satellites artificiels.
Le système FORTRAN développé pour l’IBM 704 témoignait d’une maturité logicielle croissante. Son manuel de référence, publié en octobre 1956, décrivait un environnement complet avec gestion des entrées-sorties, conversions automatiques entre formats décimaux et binaires, manipulation de tableaux multidimensionnels et optimisation du code généré. Le système gérait aussi l’intégration de routines externes et l’allocation de la mémoire disponible.
La documentation technique insistait sur l’efficacité du code produit par FORTRAN, comparable à celui écrit par les meilleurs programmeurs en langage machine. Cette performance, couplée à la simplicité de programmation, explique l’adoption rapide du système dans les milieux scientifiques.
L’IBM 704 symbolise cette période où l’ordinateur, d’abord machine à calculer, s’est transformé en outil de création polyvalent. Son influence sur les langages informatiques, la synthèse sonore et le calcul scientifique a marqué les débuts de l’informatique moderne du XXe siècle.
Conférence de Dartmouth
Un document rédigé le 31 août 1955 par quatre scientifiques, John McCarthy, Marvin Minsky, Nathaniel Rochester et Claude Shannon, proposait l’organisation d’une conférence d’été au Dartmouth College. Leur texte, A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, imaginait un rassemblement de deux mois pour explorer la création de machines douées d’intelligence.
Ces chercheurs défendaient une idée audacieuse : tout aspect de l’apprentissage et de l’intelligence pouvait être décrit avec une précision suffisante pour être reproduit par une machine. Ils voulaient découvrir comment ces machines utiliseraient le langage, formeraient des concepts abstraits, résoudraient des problèmes complexes et s’amélioreraient par elles-mêmes.
La proposition détaillait sept directions de recherche. D’abord, les ordinateurs automatiques : selon eux, la limitation n’était pas tant matérielle que logicielle – nous ne savions pas encore écrire des programmes exploitant pleinement les ressources disponibles. Puis venait la programmation du langage, partant du principe que la pensée humaine manipule essentiellement des mots selon certaines règles. Les réseaux de neurones constituaient le troisième axe, cherchant à comprendre la formation des concepts dans un réseau neuronal. Le quatrième aspect concernait une théorie sur les calculs et leur taille, mesurant l’efficacité des dispositifs informatiques. L’auto-amélioration représentait le cinquième volet, suggérant qu’une machine véritablement intelligente devrait pouvoir accroître ses propres capacités. Le sixième thème abordait les abstractions et leur classification. Le dernier explorait le rôle du hasard et de la créativité, suggérant qu’une dose contrôlée d’aléatoire distinguait la pensée créative de la simple compétence technique.
Chacun des quatre organisateurs apportait une expertise unique. Claude Shannon, mathématicien travaillant aux Bell Labs, avait développé la théorie statistique de l’information et appliqué le calcul propositionnel aux circuits de commutation. Marvin Minsky, jeune chercheur à Harvard spécialisé en mathématiques et neurologie, avait construit une machine simulant l’apprentissage neuronal. Nathaniel Rochester dirigeait la recherche sur l’information chez IBM et avait participé à la conception de l’IBM 701, l’un des premiers ordinateurs commerciaux largement adoptés. John McCarthy, professeur assistant de mathématiques à Dartmouth, étudiait la nature mathématique du processus de pensée.
La Fondation Rockefeller finança l’événement à hauteur de 13 500 dollars, couvrant salaires (1 200 dollars par universitaire), voyages, hébergement et frais administratifs. Les participants venant d’entreprises comme Bell Labs ou IBM étaient pris en charge par leurs organisations.
Les annexes de la proposition révèlent les visions personnelles des organisateurs. Shannon souhaitait appliquer sa théorie de l’information aux machines calculatrices et aux modèles cérébraux, notamment pour étudier le calcul fiable avec des composants non fiables. Minsky voulait créer des systèmes capables de développer des abstractions sensorielles pour modéliser leur environnement. Rochester s’intéressait à l’originalité dans les performances des machines, cherchant comment introduire une forme maîtrisée de hasard pour favoriser la créativité. McCarthy, quant à lui, explorait la relation entre langage et intelligence, visant à créer un langage artificiel donnant aux machines la capacité de formuler des hypothèses et de s’auto-référencer.
La conférence suscita un vif intérêt. Une liste des chercheurs passionnés par ce que l’on nommait le « problème de l’intelligence artificielle » fut établie. On y trouvait des scientifiques renommés comme John Nash, Herbert Simon ou Warren McCulloch. Cette diversité disciplinaire témoignait de l’attrait du sujet : mathématiques, ingénierie électrique, neurologie, psychologie et informatique s’y rencontraient.
L’expression « intelligence artificielle » fait sa première apparition officielle dans ce document. Ce choix terminologique affirmait clairement l’ambition de créer des machines capables d’une véritable intelligence, bien au-delà de la simple automatisation de tâches spécifiques.
Cette conférence de l’été 1956 établit l’intelligence artificielle comme domaine distinct, avec ses objectifs, méthodes et vision propres. Les questions qu’elle souleva – apprentissage machine, traitement du langage naturel, représentation des connaissances, raisonnement automatique – structurent aujourd’hui la recherche en IA au XXIe siècle.
Son influence, au-delà du cadre technique, créa une communauté scientifique vivante. Les participants retournèrent dans leurs institutions pour y fonder des laboratoires d’IA, former des étudiants et lancer des programmes de recherche qui transformèrent l’informatique durant les décennies suivantes.
L’enthousiasme qui transparaît dans la proposition de Dartmouth caractérise cette époque où l’informatique semblait promise à un avenir sans limites. Certains espoirs se sont heurtés à des obstacles plus complexes que prévu, mais les bases conceptuelles posées lors de cette rencontre ont rendu possibles les applications qui transforment notre quotidien, de la reconnaissance vocale à la traduction automatique, des systèmes experts à l’apprentissage profond.
IBM 350 RAMAC
Le 6 mai 1955, IBM dévoile sans tapage une avancée technique qui changera à jamais notre rapport aux données. Dans un laboratoire de San José, une équipe d’ingénieurs vient de créer le premier disque dur de l’histoire. Cet appareil au nom peu évocateur pour le grand public, l’IBM 350 RAMAC (Random Access Method of Accounting and Control), marque le début d’une nouvelle ère dans le stockage numérique.
Tout commence trois ans plus tôt. En janvier 1952, W. Wallace McDowell contacte Reynold B. Johnson, un ancien professeur reconverti chez IBM. La direction souhaite établir un petit laboratoire sur la côte Ouest américaine, loin des habitudes et structures de l’Est. Johnson reçoit carte blanche pour monter une équipe limitée à 50 personnes. Sa mission consistait à explorer des voies techniques différentes, notamment l’impression sans impact et la réduction des données.
Johnson ne perd pas de temps. En quelques semaines, il loue un bâtiment vide à San José, lance le recrutement et débute les travaux. Louis D. Stevens, envoyé temporairement pour l’aider, sera finalement son bras droit technique. Dès juillet 1952, le laboratoire fonctionne avec une trentaine de collaborateurs. L’atmosphère y est particulière, façonnée par trois règles établies par Johnson : comprendre sa machine et son usage, connaître tous les projets en cours dans le laboratoire, et toujours donner priorité à l’aide entre collègues.
Le projet qui aboutira au RAMAC s’appelle au départ « Source Recording ». Son objectif est simplement de transformer des données alphanumériques en format lisible par machine, alors que les options de stockage se comptent sur les doigts d’une main : cartes perforées, bandes magnétiques et, plus marginalement, tambours magnétiques. Ces supports présentent tous des limitations, rendant les processeurs souvent inactifs pendant la recherche d’information.
À l’automne 1952, l’équipe s’intéresse aux « fichiers bac » de cartes perforées très répandus dans les entreprises. Ces grands casiers rectangulaires contiennent des cartes classées par numéro de client ou d’article. Les employés y fouillent manuellement pour produire factures et bons de livraison, un processus lent et sujet aux erreurs.
Après avoir exploré diverses pistes, Johnson prend en janvier 1953 une décision audacieuse qui suscite l’incrédulité : concentrer tous les efforts sur les disques magnétiques. Un ingénieur lui prédit un échec cuisant, et le projet hérite du surnom moqueur de « trancheuse à saucisson ».
Les problèmes techniques semblent insurmontables. Maintenir un écart microscopique entre la tête de lecture et la surface tournante, créer des surfaces parfaitement planes, développer un revêtement magnétique fiable... La liste paraît sans fin. L’équipe teste différents matériaux : aluminium, laiton, verre, plastiques, magnésium. Les disques en aluminium se déforment à grande vitesse. La solution vient finalement de stratifiés d’aluminium compressés et chauffés au-delà du point de recuit. Le revêtement magnétique pose un autre casse-tête. Jake Hagopian trouve une méthode artisanale : verser le revêtement sur la face interne d’un disque en rotation rapide. Bill Crooks l’améliore en filtrant la solution à travers du nylon et en utilisant... des gobelets en papier pour les mesures. Cette technique rudimentaire sera utilisée pendant un an avant d’être automatisée. Norman Vogel résout quant à lui le problème de la tête de lecture-écriture. Il conçoit un système qui rétracte la tête pendant le mouvement entre les disques, avec trois mini-pistons pneumatiques pour contrôler la position.
Le 10 février 1954, le premier transfert d’information entre cartes et disques est réussi. Le prototype ressemble à une machine abracadabrante, mais l’équipe persévère. Une refonte complète aboutit au Modèle II, avec comme innovation le passage à un axe vertical pour les disques, facilitant leur remplacement et laissant plus d’espace pour les mécanismes d’accès.
Le 10 janvier 1955, moins de trois ans après la création du laboratoire, le premier Modèle II du RAMAC 350 est présenté avec succès. Le système est commercialisé en septembre 1956, intégré au système IBM 305 RAMAC qui comprend processeur, lecteur de cartes et imprimante.
Les caractéristiques du RAMAC 350 étaient sans précédent. Cinquante disques de 61 cm tournant à 1 200 tr/min, un débit de 100 000 bits par seconde, une capacité totale de 5 millions de caractères. La densité atteignait 2 000 bits par pouce carré, avec un temps d’accès moyen de 600 millisecondes. Pour mesurer le chemin parcouru, l’IBM 3380 des années 1980 utilisait neuf disques de 35,5 cm tournant à 3 600 tr/min, avec un débit de 24 millions de bits par seconde et une capacité de 1,25 milliard d’octets. Le coût de location mensuel par mégaoctet chuta de 130 dollars pour le RAMAC 350 à environ un dollar pour le 3380.
L’arrivée du RAMAC 350 a bouleversé notre rapport aux données. Pour la première fois, l’information devenait directement accessible sans manipulation physique préalable. Cette rupture technologique a rendu possibles les applications informatiques interactives : réservations aériennes, gestion des stocks, services bancaires automatisés, contrôle des vols spatiaux, traitement de texte...
Cette innovation, née dans un modeste laboratoire californien, a lancé une industrie du stockage générant des milliards de dollars, et stimulé le développement des processeurs rapides et des services informatiques. En 1984, l’American Society of Mechanical Engineers reconnaît officiellement le RAMAC 350 comme jalon historique international, saluant son rôle dans l’évolution du génie mécanique et son influence sur la société du XXe siècle.
Le RAMAC marque la naissance véritable de l’ère numérique où nous vivons aujourd’hui, où l’accès instantané à l’information est devenu si naturel que nous en oublions parfois le miracle technologique qu’il représente.
IPL
Les ordinateurs, machines d’abord créées pour résoudre des équations mathématiques, allaient bientôt s’attaquer à un domaine différent : celui du traitement symbolique et de la résolution de problèmes complexes. C’est dans cette effervescence qu’a émergé Information Processing Language, famille de langages qui a tracé un sillon dans l’histoire de l’intelligence artificielle.
L’aventure d’IPL débute avec le rêve audacieux de construire un programme capable de prouver des théorèmes logiques. IPL-I, esquissé au début des années 1950, n’a jamais existé ailleurs que sur le papier. Cette ébauche constituait néanmoins une première tentative pour formaliser les mécanismes de manipulation symbolique indispensables à la démonstration automatique.
À la RAND Corporation se développèrent ensuite IPL-II et IPL-III, déployés sur l’ordinateur JOHNNIAC. Ces versions ont donné vie au programme Logic Theorist, une œuvre pionnière dans l’univers de l’intelligence artificielle. Ce programme démontrait des théorèmes par des méthodes heuristiques calquées sur la pensée humaine, rompant avec l’approche purement calculatoire des ordinateurs.
La migration d’IPL vers l’IBM 650 par une équipe du Carnegie Institute of Technology donna naissance à IPL-V, version achevée et influente de cette lignée. Pendant ce temps, IPL-IV tournait sur le JOHNNIAC pour des applications novatrices : un programme d’échecs et un système d’équilibrage de chaînes de production industrielle.
IPL-V marquait une rupture dans la conception des langages informatiques. Il apportait des notions comme la manipulation de listes et de structures de données évolutives. Le langage rendait possible la création et la modification dynamique des données durant l’exécution du programme, caractéristique rare à une époque où la mémoire restait généralement figée.
La grande force d’IPL résidait dans sa capacité à modéliser des tâches que les humains accomplissent sans pouvoir en décrire le cheminement. Jouer aux échecs, prendre des décisions commerciales ou démontrer des théorèmes mathématiques sont autant d’activités où l’expertise humaine repose sur des intuitions plutôt que sur des algorithmes définis. IPL fournissait un cadre pour transcrire ces comportements adaptatifs typiques de l’intelligence naturelle.
L’architecture d’IPL s’articulait autour de quelques principes fondamentaux. Le système employait des cellules pour stocker des mots IPL, formés de deux préfixes (P et Q) et de deux symboles (SYMB et LINK). Les symboles, régionaux ou locaux, offraient une représentation souple des données. Le langage a popularisé le concept de « liste », structure fondamentale pour organiser l’information de façon hiérarchique.
Une création remarquable d’IPL fut son système de « liste de description ». Ce mécanisme associait des informations descriptives à une liste, informations modifiables en cours d’exécution. Cette approche annonçait les concepts actuels de métadonnées et d’attributs d’objets que l’on retrouve dans la programmation moderne du XXIe siècle.
IPL intégrait aussi des fonctionnalités avancées de gestion mémoire, notamment avec sa « liste d’espace disponible » qui automatisait l’allocation et la libération des ressources. Cette méthode affranchissait les développeurs des contraintes de gestion manuelle, leur laissant davantage d’énergie pour la logique algorithmique.
Le langage proposait environ 150 processus fondamentaux couvrant un large spectre d’opérations : manipulation de listes, calculs arithmétiques, gestion des entrées-sorties, et traitement de structures complexes. Un dispositif élaboré de « générateurs » rendait possible l’exécution d’opérations répétitives avec élégance.
IPL a servi de socle à diverses applications dans le champ de l’intelligence artificielle naissante. Des programmes d’apprentissage de discrimination, de choix binaires et de démonstration de théorèmes ont vu le jour grâce à ce langage. Ces créations ont prouvé l’aptitude d’IPL à soutenir des applications sophistiquées de traitement symbolique.
IPL-VI, ultime version de cette famille avec une vision ambitieuse, proposait une architecture matérielle conçue spécifiquement pour exécuter directement ce langage, sans passer par une couche d’interprétation logicielle. Cette démarche visait à dépasser les limites de performance inhérentes à la nature interprétée des versions antérieures sur des machines conventionnelles.
IPL a inspiré la création d’autres systèmes comme LISP, le traitement de listes en FORTRAN, ou COMIT. Ces langages ont prolongé l’exploration des voies ouvertes par IPL dans le domaine du traitement symbolique et de l’intelligence artificielle. Malgré ses faiblesses en termes de rapidité, notamment pour les calculs numériques traditionnels, il a montré que les bénéfices d’un système de haut niveau compensaient largement ses coûts en ressources, tout particulièrement pour des applications complexes nécessitant une gestion fine des données et des processus.
TX-0
Le TX-0 (Transistorized Computer Zero) vit le jour au Lincoln Laboratory du MIT en 1956. L’histoire de cette machine exceptionnelle débute par la volonté de créer le premier ordinateur à usage général entièrement transistorisé. Les deux ambitions qui guidaient cette aventure étaient d’expérimenter l’utilisation des transistors comme éléments logiques dans un calculateur numérique rapide, et de mettre à l’épreuve une mémoire à tores de ferrite d’une capacité extraordinaire de 65 536 mots.
L’équipe dirigée par Kenneth Olsen fit le choix d’une architecture minimaliste : un mot de 18 bits, dont 16 bits d’adressage et seulement 2 bits pour le code instruction. Ce jeu d’instructions minimal ne proposait que quatre commandes. La première stockait l’accumulateur, la deuxième y additionnait une valeur, la troisième gérait les transferts conditionnels sur valeur négative. La quatrième, véritable tour de force, autorisait la micro-programmation, avec plusieurs transferts de registres au sein d’un cycle machine. Cette astuce rendit le TX-0 remarquablement souple malgré sa conception épurée.
L’apport technologique du TX-0 résidait dans ses composants. Les transistors Philco L-5122, commercialisés plus tard sous la référence 2N240, subirent une sélection draconienne avant leur montage. Le résultat dépassa toutes les attentes : après 10 000 heures de fonctionnement, ces semi-conducteurs ne montraient qu’une infime baisse de gain. Plus stupéfiant, en 1974, après 49 000 heures d’opérations, à peine une douzaine avaient rendu l’âme.
L’architecture électronique du TX-0 reposait sur des circuits RC, association d’une résistance et d’un condensateur, couplés en logique négative, avec -3V pour représenter le 1 et 0V pour le 0. La vraie prouesse résidait dans l’usage exclusif de transistors pour réaliser les fonctions logiques, sans recourir aux diodes usuelles. Les opérations AND et OR s’obtenaient par manipulation subtile des tensions.
La première mémoire du TX-0, baptisée « S Memory », constituait un monument technologique : 1,25 million de minuscules tores de ferrite, fabriqués artisanalement au Lincoln Laboratory. Cette matrice stockait 65 536 mots de 19 bits avec un temps de cycle de 5 microsecondes. En 1958, cette mémoire fut transférée vers le projet TX-2, cédant la place à une nouvelle mémoire transistorisée de 4 096 mots.
L’année 1958, le TX-0 quitta son berceau pour rejoindre le campus du MIT à Cambridge. Ce déménagement transforma son rôle d’objet de recherche en outil expérimental, accessible jour et nuit aux chercheurs et étudiants. Cette politique de libre accès engendra un foisonnement d’applications novatrices.
Les évolutions matérielles se succédèrent. La mémoire passa à 8 192 mots en 1959, tandis que le jeu d’instructions s’étoffait progressivement. L’ajout d’un registre d’index et l’extension du code opération à 5 bits ouvrirent de nouvelles possibilités. Le système d’entrée-sortie s’enrichit de convertisseurs analogique-numérique et numérique-analogique, préparant le terrain aux applications temps réel.
Le logiciel suivit cette mutation. L’utilitaire initial de Jack Gilmore céda la place à des assembleurs sophistiqués. L’assembleur Macro, œuvre de J.B. Dennis en 1959, apporta des fonctions avancées comme les macro-instructions et la gestion automatisée des constantes. Son successeur, Midas, permit la manipulation de symboles plus longs et introduisit la macro-programmation récursive.
Les applications du TX-0 illustrent l’étendue de son influence. Le laboratoire de biophysique des communications l’adopta pour analyser les données électrophysiologiques du cortex auditif. L’équipe de recherche sur la parole s’en servit pour créer les premières techniques de reconnaissance vocale. D’autres chercheurs explorèrent le traitement d’images et la reconnaissance de caractères, ainsi qu’une main robotique munie de capteurs grâce à cet ordinateur.
Kenneth Olsen, fort de cette expérience du TX-0, fonda Digital Equipment Corporation (DEC). Les concepts développés sur le TX-0 inspirèrent directement le PDP-1, premier ordinateur commercial de DEC, qui reprit nombre des caractéristiques de son ancêtre académique.
Le TX-0 démontra la pertinence d’une approche interactive et personnelle de l’informatique. Son mode de fonctionnement en accès direct bouscula le modèle dominant du traitement par lots. Sa longévité témoigne de l’excellence de sa conception. Après plus de 49 000 heures d’activité, la machine nécessitait toujours très peu d’entretien. En 1975, le TX-0 trouva refuge au Computer Museum de DEC à Marlborough, Massachusetts, préservant pour la postérité un jalon fondateur de l’informatique transistorisée.
FORTRAN
IBM lança le projet FORTRAN durant l’été 1954, acronyme de FORmula TRANslating, sous la houlette de John Backus. À cette époque, programmer le nouvel ordinateur d’IBM, le 704, relève du parcours du combattant. Près des deux tiers du budget des projets scientifiques s’envolent dans la simple préparation des programmes. Pire, la planification, l’écriture et le débogage engloutissent plus de 90% du temps total des projets.
Face à ce constat, l’équipe de Backus nourrit l’ambition claire de créer un langage qui se rapproche de l’écriture mathématique tout en générant automatiquement un code machine performant. L’objectif audacieux est de diminuer d’au moins 80% le temps consacré au codage et au débogage.
Le développement du système s’étale sur deux ans et demi. Une équipe de 18 personnes y travaille sans relâche. Leurs efforts aboutissent en 1957 à un système complet comprenant deux éléments fondamentaux : le langage FORTRAN et son traducteur, qu’on nomme executive routine.
FORTRAN bouscule les habitudes avec ses innovations. Les expressions arithmétiques s’écrivent désormais naturellement, proches de la notation mathématique classique. L’astérisque (*) symbolise la multiplication tandis que le double astérisque (**) représente l’exponentiation. Le système génère un code machine optimisé, évitant les calculs redondants et sélectionnant les meilleures instructions pour chaque opération.
Le langage regorge de fonctionnalités inédites. Les instructions DO et IF contrôlent le flux d’exécution. Les tableaux multidimensionnels se manipulent aisément grâce aux variables indicées. Les instructions READ, PRINT et FORMAT gèrent les entrées-sorties avec souplesse. Les programmeurs définissent leurs propres fonctions, favorisant la réutilisation du code et structurant mieux leurs programmes.
La prouesse technique du traducteur FORTRAN réside dans sa capacité à produire un code machine presque aussi efficace que celui écrit manuellement par des programmeurs chevronnés. Cette performance découle d’une analyse fine du code source et de techniques d’optimisation novatrices. L’architecture du traducteur se divise en six sections distinctes, chacune remplissant une fonction précise dans la chaîne de traduction.
Un exemple concret illustre l’efficacité du système. Après une journée de formation et quelques consultations du manuel, un programmeur réalise une application en quatre heures seulement, avec 47 instructions FORTRAN. La compilation sur le 704 prend six minutes et génère environ 1000 instructions machine. Le programmeur repère et corrige une erreur dans son code, sans recourir à des techniques de débogage complexes. Ce programme lui aurait demandé trois jours de codage manuel, sans compter le temps de débogage.
Le succès ne se fait pas attendre. FORTRAN s’impose comme la référence en programmation scientifique. Après sa première normalisation en 1966, le langage est largement adopté, facile à enseigner et relativement indépendant des machines. Il a démontré les avantages des sous-programmes et de la compilation indépendante.
Les années 1970 voient poindre de nouveaux langages qui révèlent certaines limites de FORTRAN. Une nouvelle mouture, Fortran 77, est normalisée en 1978. Malgré des améliorations bienvenues, cette mise à jour ne comble pas toutes les attentes d’une communauté avide de changements plus profonds. D’autres langages comme Pascal, Ada, Modula 2, C et C++ commencent à gagner du terrain dans les cercles scientifiques et académiques.
Il faut attendre 1991 pour voir émerger Fortran 90, une évolution majeure. Cette version introduit une pléthore de fonctionnalités modernes : forme source libre autorisant des noms de variables plus longs, structures de contrôle revues, spécification précise de la précision numérique, traitement des tableaux comme entités à part entière, allocation dynamique de mémoire avec pointeurs et récursivité, types de données définis par l’utilisateur, modules avec surcharge d’opérateurs et les procédures génériques.
Fortran 95, finalisé en 1996, apporte des améliorations plus modestes mais significatives comme l’instruction FORALL pour le traitement parallèle, les sous-programmes purs et élémentaires définis par l’utilisateur, ainsi que diverses optimisations concernant les pointeurs et les types dérivés.
Un bond en avant s’opère avec Fortran 2003, qui intègre la programmation orientée objet. Cette version comprend l’héritage des types dérivés, le polymorphisme permettant aux variables de changer de type durant l’exécution, les procédures liées aux types, et l’interopérabilité avec le langage C. Les capacités d’entrée-sortie se voient renforcées, et le support des exceptions arithmétiques IEEE fait son apparition.
La dernière évolution, Fortran 2008, enrichit encore le langage avec le support de la programmation parallèle via les tableaux coarray, l’augmentation du rang maximal des tableaux à quinze dimensions, de nouvelles fonctionnalités pour améliorer les performances comme la construction DO CONCURRENT, et l’ajout de nombreuses fonctions mathématiques intrinsèques pour le calcul scientifique.
D’un langage pionnier conçu pour simplifier la programmation des calculateurs scientifiques, FORTRAN s’est métamorphosé en un outil moderne qui intègre les paradigmes de programmation contemporains tout en restant fidèle à sa vocation première : offrir aux scientifiques et aux ingénieurs un moyen efficace d’exprimer leurs calculs. Sa longévité tient à sa capacité d’évoluer tout en maintenant la compatibilité avec les versions antérieures, préservant ainsi les investissements colossaux réalisés dans le code existant. Le code Fortran 77 demeure un sous-ensemble valide des versions récentes, ce qui rend possible la modernisation progressive des applications des organisations sans tout reconstruire.
Cette robustesse hors norme trouve une illustration saisissante dans les sondes spatiales Voyager. Plus de 45 ans après leur lancement, à 24 milliards de kilomètres de la Terre, elles fonctionnent toujours avec leur code FORTRAN d’origine. En 2023, les équipes de la NASA réalisent un exploit technique en réussissant à déployer des correctifs sur ce code, témoignant de l’extraordinaire pérennité du langage dans des conditions extrêmes.
Circuit intégré
À la fin de la Seconde Guerre mondiale, l’électronique complexe des bombardiers B-29 avait un problème technique de taille : chaque appareil embarquait près d’un millier de tubes à vide et des dizaines de milliers de composants passifs. Cette multiplication des éléments entraînait une hausse exponentielle des coûts de fabrication et une baisse inquiétante de la fiabilité. Les militaires américains, confrontés à cette réalité technique, craignaient que cette complexité ne freine drastiquement l’évolution des systèmes électroniques.
Le National Bureau of Standards lança les premières recherches pour simplifier la fabrication. La division Centralab de Globe-Union proposa une technique novatrice à base de substrats céramiques supportant des interconnexions métalliques et des condensateurs, sur lesquels venaient se fixer des tubes à vide miniaturisés. Cette méthode, fruit du travail de S.J. Rubenstein, Mr Ehlers, Gertrude B. Sherwood et Howard J. White, marqua la première tentative de création de composants in situ.
Après 1945, les travaux continuèrent sous la direction de R.L. Wolff et A.S. Khouri, et Centralab mit au point des procédés de sérigraphie haute cadence. La société fabriqua des amplificateurs pour appareils auditifs intégrant des dizaines de composants passifs et quelques supports de tube. L’utilisation d’un substrat à forte constante diélectrique permit la production économique de réseaux RC destinés aux postes radio et aux téléviseurs.
Tout changea avec l’arrivée du transistor en 1948. Plus compact, moins énergivore et plus fiable que le tube à vide, il générait aussi moins de chaleur. Son intégration aux circuits existants demanda toutefois une longue adaptation technologique. Jack Kilby, chez Texas Instruments, et Robert Noyce, de Fairchild Semiconductor, conçurent indépendamment le circuit intégré en 1958.
Kilby imagina que tous les composants d’un circuit pouvaient être fabriqués dans un bloc de semi-conducteur. En septembre 1958, sa démonstration d’un oscillateur à déphasage utilisant transistors, résistances et condensateurs en germanium prouva la validité du concept. Cette approche pionnière utilisait des interconnexions par fils d’or soudés qui s’avéraient incompatibles avec une production industrielle, ce qui constituait un défaut important.
Noyce développa une solution différente chez Fairchild, basée sur la technologie planaire de Jean Hoerni. Sa conception utilisait le silicium comme substrat, recouvert d’une couche d’oxyde isolante sur laquelle étaient déposées des pistes d’aluminium pour les interconnexions. Cette méthode, plus adaptée à l’industrialisation, devint le fondement de la technologie moderne des circuits intégrés.
Ces inventions transformèrent radicalement l’électronique. La fabrication de circuits complets sur une seule puce de silicium réduisit drastiquement les coûts tout en améliorant spectaculairement la fiabilité. En 1961, Fairchild commercialisa la famille Micrologic, premier ensemble de circuits logiques compatibles avec résistances diffusées et interconnexions. Cette année-là, Texas Instruments livra à l’US Air Force un petit ordinateur intégrant plusieurs centaines de bits de mémoire semi-conductrice.
L’industrie des circuits intégrés suivit une trajectoire exponentielle, décrite par Gordon Moore en 1965 : le nombre de transistors par circuit double environ tous les deux ans. Cette prédiction s’est vérifiée pendant plus de cinquante ans. Des premiers circuits contenant quelques milliers de transistors, nous sommes passés à des puces renfermant plusieurs milliards de composants.
Les progrès technologiques ont constamment réduit la taille des transistors : de plusieurs microns dans les années 1970 à quelques nanomètres aujourd’hui. Cette miniaturisation s’accompagne d’une hausse des performances et d’une baisse de la consommation électrique. La technologie actuelle approche cependant ses limites physiques, avec des transistors ne mesurant que quelques dizaines d’atomes de large.
Les circuits intégrés ont rendu possible l’ordinateur personnel, le téléphone mobile, Internet et l’intelligence artificielle. L’essor de l’industrie des semi-conducteurs a bouleversé l’économie mondiale, créant de nouveaux secteurs et modifiant nos modes de vie.
Face aux contraintes physiques de la miniaturisation, les chercheurs explorent désormais l’intégration tridimensionnelle ou l’informatique quantique. Les besoins de puissance de calcul pour l’intelligence artificielle et le machine learning du XXIe siècle stimulent encore l’innovation dans ce domaine.
ALGOL
La naissance d’ALGOL (ALGOrithmic Language) remonte à la fin des années 1950. Ce langage résulte d’une vision partagée par des chercheurs européens et américains : créer un outil universel pour exprimer des algorithmes indépendamment des machines. Lors d’un symposium à Darmstadt en 1955, cette idée prend racine dans les discussions entre spécialistes du calcul automatique.
Le contexte technologique de l’époque justifie pleinement la démarche. Aux États-Unis, l’informatique se transforme en secteur industriel avec IBM et d’autres fabricants qui commercialisent leurs premiers ordinateurs. Une multitude de langages spécifiques fleurit au gré des besoins et des équipes. L’Europe, quant à elle, voit naître ses premières grandes machines dédiées principalement aux calculs scientifiques.
La GAMM (Gesellschaft für Angewandte Mathematik und Mechanik) et l’ACM (Association for Computing Machinery) décident en 1957 de former des groupes de travail sur ce langage commun. La rencontre de Zürich en 1958 aboutit à la fusion des propositions européennes et américaines sous le nom d’IAL (International Algebraic Language), rebaptisé ALGOL 58.
En 1959, John Backus fait une avancée en inventant une notation formelle pour décrire la syntaxe des langages de programmation. Cette forme Backus-Naur (BNF) remplace les descriptions imprécises en langage naturel par une définition rigoureuse. Peter Naur perfectionne cette notation et l’intègre à la définition d’ALGOL 60, posant ainsi les bases d’une méthode désormais classique.
ALGOL 60 se distingue par plusieurs innovations : les blocs de code avec leur propre portée lexicale, les procédures récursives, les paramètres transmis par nom ou par valeur. Sa rigueur mathématique transparaît dans l’obligation de déclarer les types de données. Les structures de contrôle comme la boucle for atteignent un niveau d’élégance et de clarté inédit.
Cette nouvelle approche stimule la recherche sur les techniques de compilation. Friedrich Bauer et Klaus Samelson publient leur méthode de traduction séquentielle des formules en 1960, tandis qu’Edsger Dijkstra réussit l’exploit de mettre au point un compilateur ALGOL 60 en seulement dix mois.
La théorie informatique s’enrichit grâce à ALGOL. Seymour Ginsburg et Gordon Rice établissent en 1962 un lien entre les langages définis par la BNF et les travaux linguistiques de Chomsky sur les grammaires contextuelles libres. Ce rapprochement entre informatique et linguistique favorise l’émergence d’une informatique théorique.
Le rayonnement d’ALGOL atteint le monde académique. Les revues scientifiques l’adoptent pour la publication d’algorithmes, notamment dans les « Algorithms » du Communications of the ACM dès 1960. Les universités européennes en font leur langue d’enseignement privilégiée.
Malgré ces succès, ALGOL peine à s’imposer face à FORTRAN dans le monde commercial. Ce paradoxe s’explique par l’absence d’un acteur industriel majeur pour le soutenir, le manque de bibliothèques standard pour les entrées-sorties, et l’inertie liée aux programmes FORTRAN existants. L’Europe, moins dépendante de cet héritage, l’adopte plus largement, notamment en Allemagne où le gouvernement l’intègre aux systèmes universitaires.
À partir de 1962, la responsabilité du développement d’ALGOL revient au Working Group 2.1 de l’IFIP (International Federation for Information Processing). Les travaux sur un successeur aboutissent à ALGOL 68, langage plus complet mais aussi plus complexe. Sa définition suscite de vives controverses au sein du groupe, au point qu’en 1969, près de la moitié des membres publient un « Minority Report » exprimant leur désaccord.
ALGOL a inspiré Pascal, Simula (précurseur de la programmation orientée objet), et Ada. Ses concepts fondamentaux – blocs structurés, portée lexicale, récursivité – deviennent des références incontournables. La notation BNF reste aujourd’hui la méthode standard pour définir la syntaxe des langages informatiques.
ALGOL témoigne de la maturation de l’informatique comme discipline scientifique. Il transforme la programmation d’une pratique artisanale en une activité formalisée. Sa vision mathématique a marqué la pensée informatique du XXe siècle. Si son succès commercial fut limité, son influence intellectuelle a façonné des générations de langages et de programmeurs.
Lisp
En 1956, le projet Lisp émerge dans le cadre des recherches estivales de Dartmouth sur l’intelligence artificielle. John McCarthy cherche alors un langage algébrique pour traiter des listes sur l’IBM 704. Il s’intéresse aux travaux de Newell, Shaw et Simon sur IPL 2, un langage conçu pour le JOHNNIAC de la RAND Corporation, mais refuse d’en reproduire la forme trop dépendante de son environnement d’origine. L’approche algébrique du Fortran l’attire davantage.
Deux circonstances favorisent ce développement : la création d’un centre de calcul IBM au MIT, accessible depuis Dartmouth, et le lancement par IBM d’un programme de démonstration de théorèmes géométriques basé sur une idée de Marvin Minsky, pour lequel McCarthy travaille en tant que consultant. IBM semble s’engager vers la recherche naissante en IA.
En 1958, McCarthy propose le concept d’Advice Taker, un système devant représenter les informations par des phrases dans un langage formel et prendre des décisions par déductions logiques. La représentation des phrases par structures de listes s’impose naturellement, tout comme l’usage d’un langage de traitement de listes pour programmer les opérations déductives.
Le premier défi technique concerne la mise en œuvre des structures de listes sur l’IBM 704. Cet ordinateur utilise des mots de 36 bits, avec deux sections de 15 bits nommées adresse et décrément. L’adressage limité à 15 bits rend nécessaire l’utilisation de pointeurs de taille identique pour les structures de listes. McCarthy établit initialement des fonctions dont cwr (Contents of Word in Register) et quatre fonctions d’extraction. Il note que l’extraction d’une sous-expression exige la composition de l’extraction de l’adresse avec cwr, tandis que la progression dans la liste demande la composition de l’extraction du décrément avec cwr. Ces observations donnent naissance aux fonctions car (Contents of Address Register) et cdr, qui deviendront emblématiques du langage.
Durant les années 1957 et 1958, McCarthy conçoit les expressions conditionnelles en programmant des routines d’échecs en Fortran. Les limites de l’instruction IF de Fortran le conduisent à créer une fonction XIF(M,N1,N2) retournant N1 ou N2 selon la nullité de M. Cette solution simplifie les programmes mais souffre de l’évaluation systématique des trois arguments. Il invente l’expression conditionnelle authentique, n’évaluant que les expressions nécessaires.
À l’été 1958, invité par Nathaniel Rochester chez IBM, McCarthy travaille sur la différentiation d’expressions algébriques. Ce travail introduit plusieurs avancées : l’écriture de fonctions récursives utilisant des expressions conditionnelles, la fonction maplist formant une liste d’applications d’un argument fonctionnel aux éléments d’une liste, et l’usage de la notation λ de Church pour nommer les fonctions. Sa définition récursive de la différentiation ne prévoit pas l’effacement des structures abandonnées, car il refuse d’altérer l’élégance de sa définition.
À l’automne 1958, McCarthy évolue en tant que professeur assistant en sciences de la communication au MIT et lance avec Minsky le projet d’intelligence artificielle du MIT. Le développement de Lisp démarre avec l’objectif initial de créer un compilateur. L’équipe commence par compiler manuellement diverses fonctions en assembleur et écrire des sous-programmes d’environnement Lisp pour lire et écrire les structures de listes.
Les programmes s’écrivent d’abord dans une notation informelle appelée M-expressions, conçue pour ressembler au Fortran. Cette notation utilise des crochets pour les arguments des fonctions, réservant les parenthèses aux constantes de structure de liste. La notation M ne sera jamais complètement formalisée, car la représentation des fonctions Lisp par des listes s’impose comme approche dominante après l’apparition de l’interpréteur.
Les fonctions READ et PRINT établissent une notation externe standard pour l’information symbolique. Par exemple, l’expression x + 3y + z devient PLUS X (TIMES 3 Y) Z. Cette notation sera nommée Cambridge Polish, en référence à la notation préfixée de Lukasiewicz et à son usage antérieur par Quine.
La gestion mémoire soulève un problème particulier. L’effacement explicite, utilisé dans IPL, manque d’élégance. Deux options se présentent : effacer l’ancien contenu d’une variable lors de sa mise à jour, ce qui nécessite des compteurs de références impossibles à intégrer dans les six bits disponibles, ou utiliser le ramasse-miettes, qui abandonne le stockage jusqu’à épuisement de la liste libre, marque le stockage accessible depuis les variables et la pile, puis transforme le stockage non marqué en nouvelle liste libre.
Les versions suivantes de Lisp apportent diverses fonctionnalités : listes de propriétés associées aux atomes, insertion et suppression d’éléments dans les listes (via rplaca et rplacd), application efficace des nombres comme atomes, et le program feature pour écrire des programmes séquentiels avec instructions d’affectation et sauts.
Deux raisons expliquent la longévité de Lisp. D’une part, son noyau occupe une forme d’optimum local dans l’espace des langages de programmation, avec l’utilisation récursive des expressions conditionnelles, la représentation de l’information symbolique par listes, et la représentation uniforme des programmes et données. D’autre part, Lisp offre des caractéristiques opérationnelles uniques qui en font un véhicule privilégié pour les systèmes de calcul symbolique et d’intelligence artificielle : son système d’exécution donnant accès aux fonctionnalités de la machine hôte, sa représentation interne facilitant la compilation depuis des langages de plus haut niveau, et la disponibilité de son interpréteur comme langage de commande.
DEC PDP-1
En 1960 arriva le PDP-1 (Programmed Data Processor), premier ordinateur commercial de Digital Equipment Corporation. Cette machine rompt avec les monstres informatiques de l’époque par sa philosophie radicalement différente de vouloir rendre l’ordinateur accessible et interactif.
Kenneth Olsen et Harlan Anderson, fondateurs de DEC en 1957, ont conçu cet ordinateur en puisant leur inspiration du TX-2 du MIT Lincoln Laboratory, où ils avaient précédemment travaillé. Le TX-2 leur sert de modèle, mais ils en simplifient l’architecture tout en gardant sa dimension interactive.
L’un des traits distinctifs du PDP-1 réside dans ses performances techniques avancées. Sa mémoire à tores de ferrite contient 4 096 mots de 18 bits, avec un cycle de 5 microsecondes. Il traite 100 000 additions par seconde, surpassant de 2,5 fois les grands calculateurs contemporains grâce à son architecture parallèle et ses circuits à 5 MHz. La substitution des tubes à vide par des transistors Micro-Alloy et Micro-Alloy-Diffused diminue son encombrement à seulement 17 mètres carrés.
Son originalité tient surtout dans l’interaction directe qu’il propose avec l’utilisateur. L’écran cathodique de 16 pouces, le clavier Friden Flexowriter et le lecteur de bande perforée lisant 300 lignes par seconde créent une expérience d’utilisation immédiate, alors que le mode batch dominait largement les usages informatiques.
D’un point de vue technique, le PDP-1 apporte plusieurs innovations durables. Son jeu d’instructions comprend 32 opcodes avec des opérations arithmétiques, logiques et de contrôle. Son système d’interruption sequence break gère plusieurs périphériques simultanément. L’adressage indirect multiple apporte une flexibilité inédite dans le traitement des données. Ces caractéristiques marqueront les futures générations d’ordinateurs. Ce modèle utilise le complément à un pour son arithmétique, choix abandonné dans les versions suivantes au profit du complément à deux, illustrant sa nature expérimentale.
Vendu 120 000 dollars, la commercialisation du PDP-1 montre l’audace de DEC et défie les ordinateurs IBM. Cette machine ne nécessite ni climatisation ni faux plancher, fonctionne sur une simple alimentation de 110 volts et intègre des circuits d’autodiagnostic pour sa maintenance. DEC cherche ainsi à « démocratiser » l’accès à l’informatique.
L’environnement logiciel comprend un assembleur avec support des macros, un éditeur de texte appelé Expensive Typewriter, l’un des premiers interpréteurs Lisp, et divers utilitaires. Le système accepte plusieurs périphériques additionnels tels qu’un lecteur de cartes perforées, une imprimante rapide, des bandes magnétiques IBM, ou des convertisseurs analogique-numérique.
En 1962, des étudiants du MIT créent Spacewar! sur cette machine. Ce programme, considéré comme le premier jeu vidéo sur ordinateur, illustre les capacités graphiques et interactives du PDP-1 tout en inventant une nouvelle forme de divertissement.
Malgré la production d’une cinquantaine d’exemplaires entre 1960 et 1969, l’influence du PDP-1 établit DEC comme acteur majeur de l’informatique interactive. Son architecture inspire directement les futurs modèles de la série : PDP-4, PDP-7, PDP-9 et PDP-15.
Aujourd’hui, le Computer History Museum de Mountain View conserve trois PDP-1, dont un fonctionnait encore en 1995. Ces machines témoignent d’une période où l’informatique commençait à quitter les centres de calcul pour se rapprocher des utilisateurs. Contrairement à IBM qui privilégiait les systèmes centralisés, DEC misait sur l’interaction homme-machine et l’accessibilité. Le succès du PDP-1 valide la stratégie de DEC basée sur des machines moins onéreuses et plus accessibles. Le PDP-1 marque ainsi les premiers pas d’une informatique où miniaturisation et interactivité sont primordiales.
IBM 1401
L’IBM 1401, annoncé en 1959, est le premier ordinateur largement adopté par les entreprises à travers le monde. Il marque la transition entre l’ère des machines mécanographiques à cartes perforées et celle de l’informatique moderne. À cette époque, le traitement des données dans les entreprises – inventaire, facturation, comptes clients, paie – s’effectuait en faisant passer des paquets de cartes perforées dans des machines électromécaniques qui triaient, calculaient, intercalaient et totalisaient. Ces opérations étaient déterminées par des tableaux de connexion câblés manuellement. Les ordinateurs centraux à tubes offraient certes une programmation stockée flexible et un stockage sur bande magnétique, mais leur coût les rendait inaccessibles pour la plupart des entreprises. Au milieu des années 1960, la moitié des ordinateurs en service dans le monde étaient des IBM 1401 ou des membres de sa famille.
C’est en 1957 que l’histoire du 1401 commence, lorsqu’IBM France et IBM Allemagne développent un prototype de « machine comptable universelle » transistorisée (WWAM) en réponse à un concurrent européen. Malgré l’utilisation d’un tableau de connexion, la configuration d’entrée de gamme s’avère trop coûteuse. À Endicott, New York, un architecte système audacieux, Fran Underwood, découvre qu’il peut remplacer économiquement le tableau de connexion par un contrôle par programme stocké. Conservant les chemins de données du WWAM, il conçoit un jeu d’instructions adapté aux applications commerciales et nomme le nouvel ordinateur SPACE (Stored-Program Accounting & Calculating Equipment).
Le développement du SPACE est dirigé par Charles Branscomb, qui étend l’équipe à 60 ingénieurs travaillant 24 heures sur 24. Il intègre une imprimante en cours de développement, décourage les fonctionnalités superflues et atteint les objectifs de coût pour l’entrée de gamme. À la mi-1959, avec un prototype fonctionnel et la formation des vendeurs en cours, la machine, officiellement renommée IBM 1401, s’apprête à révolutionner le marché professionnel.
Le 5 octobre 1959, IBM annonce le 1401 par télévision en circuit fermé à 50 000 participants dans 104 lieux différents. En cinq semaines seulement, 5 200 systèmes sont commandés, dépassant les prévisions de ventes sur toute la durée de vie du produit et surpassant le nombre total d’ordinateurs commerciaux alors en service dans le monde. Un an plus tard, le premier système est livré à Time-Life, qui transfère 60 millions de cartes perforées sur quelques centaines de bandes magnétiques. Les systèmes 1401 à bandes libèrent ainsi les utilisateurs d’une pratique vieille de sept décennies : le stockage des données sur cartes perforées.
En 1962, les revenus du 1401 dépassent ceux des machines comptables traditionnelles. En 1965, le 1401 et sa famille (modèles 1410, 1440, 1460, et 7010) représentent la moitié de tous les ordinateurs dans le monde, atteignant un pic de 16 000 systèmes en 1967. La majorité des 1401 étaient loués. La location d’un système d’entrée de gamme coûtait 2 500 dollars par mois, soit l’équivalent de trois machines comptables et une calculatrice. Un système typique se louait 6 500 dollars par mois, ou s’achetait 500 000 dollars – environ un dixième du coût d’un ordinateur central.
Considéré comme un ordinateur « petit système », un 1401 pesait entre 2 et 3 tonnes, consommait jusqu’à 14 000 watts et contenait environ un demi-million de pièces. Entretenus principalement par les ingénieurs clients d’IBM, ces systèmes étaient réputés pour leur fiabilité et fonctionnaient souvent 24 heures sur 24.
Sur le plan technique, le 1401 reposait sur le traitement série des chiffres et des caractères. Pendant son cycle d’horloge de 11,5 microsecondes, une instruction pouvait additionner deux chiffres décimaux ou traiter un caractère en entrée, en sortie, ou le formater pour l’impression. Les nombres et les chaînes de longueur variable étaient stockés à raison d’un chiffre ou d’un caractère par position mémoire. La taille de la mémoire variait de 1 400 à 16 000 positions, chacune sur 8 bits – 6 bits pour le caractère, 1 bit pour marquer la fin du nombre ou de la chaîne, 1 bit de parité.
Le processeur du 1401 fonctionnait à 87 000 cycles par seconde. Pour aider à la comparaison, un PC actuel à 3 gigahertz permet d’additionner deux nombres de 20 chiffres environ un million de fois plus vite qu’un 1401. La machine utilisait des transistors germanium à jonction alliée et des diodes à pointe de contact peu coûteux, montés sur environ 4 000 cartes SMS (Standard Modular System). La mémoire à tores de ferrite, constituée d’un empilement de grilles de minuscules anneaux magnétiques traversés par des fils fins, coûtait environ 60 cents par bit – 400 millions de fois plus cher que la RAM actuelle.
Le succès du 1401 tenait en grande partie à ses périphériques : l’imprimante à chaîne 1403 dont la vitesse (600 lignes/minute, saut rapide) et l’exceptionnelle qualité d’impression (chaîne interchangeable à rotation horizontale) en firent un standard industriel ; le lecteur-perforateur de cartes 1402 (800 et 250 cartes/minute) ; et les bandes magnétiques 729 de type mainframe (15 millions de caractères par bobine). Le disque RAMAC 1405 (20 millions de caractères) et un lecteur optique de chèques bancaires furent disponibles dès 1961.
Côté logiciel, IBM proposait des assembleurs pour la programmation en langage machine (Autocoder, SPS), des compilateurs pour les langages Fortran, COBOL et RPG (Report Program Generator), ainsi que des utilitaires de tri et d’entrée-sortie. IBM ne développa pas de système d’exploitation pour le 1401, mais en créa un pour le 1410.
Fin 1964, Honeywell conteste la domination d’IBM sur le marché en annonçant le H200, plus rapide et plus performant, accompagné de son logiciel Liberator capable d’exécuter les programmes du 1401 sans modification. En 1961, IBM commence à planifier l’unification de ses nombreuses gammes d’ordinateurs. Le System/360, annoncé en avril 1964, consolide logiciels, périphériques et support dans une famille d’ordinateurs compatibles. Une technologie clé était le control store flexible qui permettait à son modèle d’entrée de gamme, le Modèle 30, d’exécuter de manière compétitive les programmes du 1401, contrant ainsi le H200. L’émulation du 1401 permit aussi à IBM de livrer des Modèles 30 quand le logiciel système du S/360 prit du retard.
Si le développement de la famille 1401 ralentit après l’annonce du S/360, ses membres restèrent plus nombreux que les S/360 jusqu’en 1968. IBM continua à proposer le 1401 jusqu’en 1971, et des émulateurs sur PC sont disponibles aujourd’hui.
Le 1401 laisse aussi un héritage inattendu dans les domaines artistiques. La machine pouvait produire de la musique en activant mélodiquement les marteaux d’impression du 1403 ou en modulant ses émissions d’ondes radio captées par un poste AM. Inspiré par un enregistrement de musique radio réalisé lors d’une cérémonie de mise hors service d’un 1401 en 1971, un compositeur islandais écrivit en 2001 une orchestration en 60 morceaux intitulée IBM 1401 : A User’s Manual (disponible sur Spotify, Apple Music etc.). Enfin, dans le film de 1964 « Dr Folamour », l’acteur Peter Sellers fait sa première apparition devant un 1403.
L’IBM 1401 continue de passionner les férus d’informatique. Des bénévoles du Computer History Museum, dont une douzaine d’anciens ingénieurs clients d’IBM, ont consacré plus de 40 000 heures à la restauration de deux 1401, l’un acquis en 2003 dans un garage allemand et l’autre en 2008 dans une maison du Connecticut (où il avait fonctionné jusqu’en 1995).
COBOL
En mai 1959, le Pentagone accueille à Washington une réunion qui changera l’informatique d’entreprise pour les décennies à venir. Charles A. Phillips, à la tête du Data Systems Research Staff, rassemble une cinquantaine de personnes : militaires, fonctionnaires, consultants et ingénieurs des plus grands fabricants d’ordinateurs. Chaque fabricant de l’époque a son propre langage, ses propres machines. Un programme écrit pour un IBM ne fonctionne pas sur un UNIVAC. Comment mutualiser les efforts dans un secteur où les applications administratives commencent à proliférer ?
De cette rencontre naît le CODASYL, un comité chargé de réfléchir aux langages informatiques. Un groupe plus restreint, le « comité court terme », reçoit la mission d’analyser les points forts et les faiblesses des compilateurs existants, principalement AIMACO (sa variante militaire), FLOW-MATIC (l’œuvre de Grace Hopper chez Remington-Rand), et COMTRAN (un projet d’IBM très théorique).
Personne ne s’attendait à ce que ce comité accouche d’un nouveau langage. Pourtant, en novembre 1959, six personnes s’enferment pendant deux semaines et en sortent avec les spécifications d’un langage qu’ils nomment COBOL : Common Business Oriented Language. Ce document, finalisé en avril 1960, allait bien au-delà d’une simple synthèse des langages existants.
Le choix technique du COBOL reposait sur sa structure en quatre divisions : IDENTIFICATION pour les informations du programme, ENVIRONMENT pour décrire l’environnement d’exécution, DATA pour structurer les données, et PROCEDURE pour les instructions. La syntaxe se rapprochait de phrases en anglais, rendant le code lisible y compris pour des non-spécialistes. Les noms de variables pouvaient compter jusqu’à 30 caractères, une nouveauté qui permettait d’utiliser des noms clairs et compréhensibles plutôt que des abréviations illisibles.
Le moment de vérité survint les 6 et 7 décembre 1960 lors d’une démonstration publique : un même programme COBOL s’exécuta correctement sur deux machines radicalement différentes, un RCA 501 et un UNIVAC II. Pour la première fois, la portabilité du code informatique devenait réalité.
Les premières années de COBOL furent marquées par plusieurs évolutions : COBOL-61, COBOL-61 Extended, puis COBOL-65. La normalisation ANSI arriva en 1968, suivie par d’autres normes en 1974 et 1985. La compatibilité ascendante, garantissant que les anciens programmes continueraient à fonctionner, est une caractéristique remarquable qui fut maintenue.
Le gouvernement américain avait l’exigence que tout ordinateur vendu ou loué aux administrations devait disposer d’un compilateur COBOL, et ce fut un des facteurs de succès de COBOL. Cette décision força les constructeurs à développer leurs propres compilateurs, propulsant COBOL au rang de standard incontournable dans l’informatique de gestion.
On pourrait questionner la longévité extraordinaire de ce langage né comme une solution temporaire, que plusieurs éléments expliquent. D’abord sa relative simplicité le rendait accessible aux programmeurs non académiques qui formaient le gros des équipes informatiques des entreprises. Sa lisibilité facilitait la maintenance des applications. Son orientation vers le traitement des données administratives correspondait parfaitement aux besoins du secteur tertiaire.
Face au bug de l’an 2000, le monde découvrit avec stupeur l’omniprésence de COBOL dans les rouages de l’économie. Les estimations vertigineuses montrèrent que sur les 300 milliards de lignes de code en production mondiale en 1997, environ 240 milliards étaient écrites en COBOL. Plus de 95% des données financières et d’assurance transitaient par ces programmes.
Contre toute logique apparente, COBOL traversa le cap de l’an 2000 sans perdre son importance. En 1999, plus de 50% des nouvelles applications critiques étaient encore développées dans ce langage, face à l’émergence de Java. Les projections pour 2004-2005 estimaient que 15% des nouvelles applications (5 milliards de lignes) seraient en COBOL, tandis que 80% des applications déployées constitueraient des extensions à des programmes COBOL existants.
Cette résistance inattendue trouve sa source dans les caractéristiques techniques du langage : pas de pointeurs, des types de données élémentaires, une description détaillée des fichiers et des sorties d’impression. Ces limitations, qui pourraient sembler handicapantes pour des applications scientifiques, sont en réalité des atouts pour les applications de gestion en réduisant les risques d’erreurs catastrophiques.
Dans notre monde obsédé par l’innovation perpétuelle, parfois la simplicité et la stabilité l’emportent sur la sophistication. Un langage jugé dépassé par les informaticiens depuis les années 1970 continue de faire tourner les systèmes financiers mondiaux au XXIe siècle, démontrant que l’élégance théorique n’est pas toujours gage de pertinence pratique.
Apprentissage automatique
Le jeu de dames comme laboratoire d’intelligence. Voilà comment Arthur Samuel conçut son approche. Ce pionnier, actif des années 1940 jusqu’aux années 1960, transforma l’informatique en lui insufflant l’apprentissage de l’expérience, une capacité jusqu’alors réservée aux humains.
Le choix des dames n’était nullement fortuit. Dans le paysage de l’intelligence artificielle, les jeux avaient un rôle comparable à celui de la drosophile pour les généticiens, des organismes simples, faciles à manipuler, parfaits pour l’expérimentation. Les dames, moins complexes que les échecs, offraient un terrain idéal où Samuel put observer les mécanismes d’apprentissage sans s’embourber dans des règles trop sophistiquées.
En 1952, le premier programme vit le jour sur l’IBM 701. Trois ans plus tard, la version dotée d’apprentissage autonome captiva le public lors d’une démonstration télévisée. Sans atteindre le niveau des champions, ce programme innovait par deux méthodes : l’apprentissage par cœur (« rote learning ») et l’apprentissage par généralisation.
La première technique, l’apprentissage par cœur, ressemblait davantage à notre propre mémoire qu’on ne pourrait l’imaginer. Samuel programma son ordinateur pour qu’il se souvienne de chaque configuration rencontrée durant ses parties. Concrètement, quand l’ordinateur analysait une position, il calculait sa valeur grâce à un algorithme appelé minimisation-maximisation qui simule les meilleurs coups possibles pour chaque joueur. La machine stockait ensuite cette position avec son évaluation. Lors des parties suivantes, face à une situation déjà vue, plus besoin de longs calculs, la réponse surgissait instantanément de sa mémoire. Samuel intégra un mécanisme ingénieux qu’il nomma « dépréciation ». Pour comprendre, visualisons un arbre où chaque branche représente un coup possible. Plus on s’enfonce dans cet arbre, plus on avance dans le déroulement hypothétique de la partie. Samuel fit en sorte que les positions lointaines dans cet arbre valent légèrement moins que celles proches du moment présent, même à valeur de jeu égale. Cette subtilité encourageait le programme à privilégier les chemins courts vers la victoire. Sans cette astuce, l’ordinateur aurait pu s’enliser dans des stratégies interminables, préférant gagner en 50 coups plutôt qu’en 10, simplement parce que les deux scénarios aboutissaient mathématiquement à la victoire.
Sa seconde méthode, l’apprentissage par généralisation, préfigurait les techniques modernes d’apprentissage par différences temporelles. Samuel fit jouer son programme contre lui-même des milliers de fois. À chaque coup, par une idée brillante et intuitive, l’ordinateur modifiait subtilement sa façon d’évaluer le plateau. Si une position du jeu mène à d’autres positions avantageuses, alors cette position initiale doit être favorable. Imaginons un coup qui semble banal mais conduit systématiquement à des configurations gagnantes trois mouvements plus tard, le programme apprend graduellement à valoriser ce coup apparemment anodin. L’ordinateur n’attendait pas la fin de la partie pour ajuster ses évaluations, il apprenait en continu, après chaque mouvement. Sans qu’on lui dise explicitement « ceci est bon » ou « cela est mauvais », le programme découvrait par lui-même les stratégies efficaces. Sa boussole restait néanmoins l’avantage matériel – le nombre de pièces possédées par rapport à l’adversaire – avec une préférence marquée pour les dames, ces pièces couronnées aux capacités de déplacement supérieures. Cette approche, étonnamment moderne, constitue l’une des premières manifestations d’apprentissage autonome en informatique au XXe siècle.
Au-delà du cadre de la recherche théorique, les travaux de Samuel sur le calcul non numérique façonnèrent l’architecture des premiers ordinateurs IBM. Les instructions logiques qu’il proposa devinrent un standard industriel tant leur utilité s’imposa pour tout traitement non mathématique. Avant de bouleverser l’intelligence artificielle, il s’était distingué comme ingénieur électricien. Diplômé d’Emporia College en 1923, puis titulaire d’un master du MIT en 1926, il y enseigna brièvement avant de rejoindre les Bell Labs. Ses recherches sur les tubes électroniques, notamment sur la charge d’espace entre électrodes parallèles, marquèrent l’époque. Durant la guerre, ses travaux sur les dispositifs protégeant les récepteurs radar s’avérèrent primordiaux.
En 1946, devenu professeur à l’Université de l’Illinois, il participa à la création d’un des premiers ordinateurs électroniques. C’est là qu’il rêva d’un programme de dames capable de vaincre un champion du monde. Ce projet resta inachevé jusqu’à son arrivée chez IBM en 1949, où il travailla sur le 701, premier ordinateur à programme enregistré de la firme. Samuel améliora considérablement sa mémoire à tubes Williams, quadruplant sa capacité de stockage et stabilisant son fonctionnement. La première démonstration publique de son programme impressionna Thomas J. Watson Sr., fondateur d’IBM, au point que celui-ci prédit – correctement – une hausse de 15 points de l’action en bourse.
Samuel contribua à l’expansion internationale d’IBM, façonnant l’orientation des laboratoires européens, notamment à Vienne (informatique) et Zurich (physique). Sa discrétion explique sans doute pourquoi l’importance de ses travaux ne fut pleinement reconnue qu’après son départ d’IBM en 1966.
À Stanford, où il devint professeur de recherche, il poursuivit ses travaux sur le jeu de dames jusqu’à ce que d’autres programmes surpassent le sien dans les années 1970. Il s’intéressa à la reconnaissance vocale et dirigea de nombreux doctorants. Ses talents s’étendaient à la rédaction technique. Il excellait à comprendre des documentations confuses et à produire des manuels limpides.
Samuel continua à programmer jusqu’à un âge remarquable. Sa dernière contribution, à 85 ans, fut d’adapter des programmes d’impression multi-polices pour le département d’informatique de Stanford. Seule la maladie de Parkinson mit fin à cette activité exceptionnelle. Sa dernière connexion date du 2 février 1990, ce qui fait probablement de lui le plus âgé des programmeurs actifs de son temps.
Schéma de Backus-Naur
Les premiers langages de haut niveau font leur apparition dans les années 1950 et avec eux surgit la problématique de la description claire et sans ambiguïté de leur syntaxe. À cette question, John Backus apporta une réponse qui allait transformer notre manière de concevoir les langages informatiques.
Avant, la description des langages relevait presque de l’art divinatoire. Les informaticiens s’évertuaient à expliquer en prose les règles syntaxiques, produisant des textes souvent confus. Le Fortran, création de Backus chez IBM, n’échappait pas à cette difficulté. Sa documentation regorgeait d’explications alambiquées du type « Un nombre réel est une séquence quelconque de chiffres décimaux avec un point décimal précédant ou intervenant entre deux chiffres ou suivant une séquence de chiffres, le tout pouvant être précédé d’un signe plus ou moins ». Pas vraiment limpide.
L’année 1959, lors du congrès IFIP à Zurich, Backus présenta une notation formelle pour décrire la syntaxe d’ALGOL. Sa proposition, qu’il avait élaborée sans prétention théorique particulière (il avoua plus tard sa méconnaissance relative de la logique mathématique), aurait pu passer inaperçue. Mais ce fut Peter Naur qui saisit immédiatement la portée de cette idée. Il retoucha la notation et l’appliqua à la définition d’ALGOL 60. Cette collaboration donna naissance au nom Backus-Naur Form (BNF), une appellation proposée par Donald Knuth pour remplacer le terme initial « Backus Normal Form » qu’il jugeait inadéquat sur le plan mathématique.
Le génie du BNF tient à sa capacité d’exprimer la récursivité avec une simplicité désarmante. Pour définir un nombre entier par exemple, écrire <integer> ::= <digit> | <integer><digit> indique qu’un entier est soit un chiffre unique, soit un entier suivi d’un chiffre. En une ligne, nous voilà capables de décrire des nombres de n’importe quelle longueur.
Backus fit un autre choix déterminant en s’affranchissant des contraintes matérielles. Contrairement au Fortran, qui limitait par exemple les nombres à l’intervalle [10−38,1038] pour des raisons de mémoire, le BNF se concentre sur la syntaxe pure, sans se soucier des limitations physiques des ordinateurs. Cette rupture conceptuelle a donné aux langages une dimension théorique indépendante de leur mise en œuvre technique.
Le succès du BNF ne tarda pas. Sa concision séduisit immédiatement : quelques lignes remplaçaient des pages entières d’explications. Sa précision balaya les ambiguïtés du langage naturel. Son aspect opérationnel acheva de convaincre : les règles BNF permettaient de construire directement des analyseurs syntaxiques automatiques.
ALGOL 60 devint ainsi le premier langage entièrement défini par une notation formelle. Cette standardisation donna aux développeurs sur différentes machines la possibilité de créer des compilateurs compatibles, concrétisant l’ambition universelle d’ALGOL. La façon de concevoir les langages informatiques s’en trouva bouleversée. Le BNF incita les informaticiens à adopter une démarche plus rigoureuse et systématique. Les étudiants purent saisir plus clairement la structure des langages de programmation grâce à ce formalisme pédagogique.
Au fil du temps, des extensions vinrent enrichir la notation originale. La EBNF (Extended BNF) intégra des opérateurs pour exprimer plus simplement la répétition ou le caractère optionnel d’éléments. Des représentations graphiques apparurent, mais les principes fondamentaux posés par Backus et Naur demeurèrent intacts.
Le BNF illustre l’apport des notations formelles à l’informatique. Il a transformé une approche artisanale en méthode scientifique, et ce, sous l’impulsion de praticiens confrontés à des problèmes concrets. La séparation qu’il opère entre syntaxe et mise en œuvre est devenue un principe cardinal dans la conception des langages.
Plus de soixante ans après son introduction, au XXIe siècle, cette notation demeure fondamentale. Elle sert aujourd’hui à définir la syntaxe des langages de programmation, les formats de données, les protocoles de communication et diverses notations formelles. Le BNF est ainsi l’un de ces outils discrets mais puissants qui transforment toute une discipline sans faire la une des journaux.
Si ce contenu vous a plu, vous pouvez soutenir ce projet en faisant un don ou en commandant l'édition papier sur Lulu ou Amazon. Tout le contenu reste librement accessible sous licence CC BY-SA 4.0.