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.