FLOW-MATIC
Fiche rapide
- Nom : FLOW-MATIC
- Nom initial : B-0
- Développement : milieu des années 1950
- Première version opérationnelle : fin 1956
- Responsable principale : Grace Hopper
- Entreprise : Remington Rand UNIVAC, puis Sperry Rand
- Machines : principalement UNIVAC I et UNIVAC II
- Domaine : traitement de données commerciales
- Particularité : instructions utilisant des mots anglais
- Héritage majeur : influence directe sur COBOL
Pourquoi créer FLOW-MATIC ?
Au début des années 1950, programmer reste une activité très proche du fonctionnement de la machine. Le programmeur travaille avec des codes numériques, des adresses mémoire et des instructions propres à chaque ordinateur.
Cette approche convient encore au calcul scientifique, mais elle devient moins naturelle lorsque les ordinateurs commencent à entrer dans les banques, les assurances, les administrations et les grandes entreprises. Ces organisations veulent surtout lire des fichiers, comparer des références, mettre à jour des comptes, calculer des prix ou préparer des états.
Grace Hopper défend alors une autre approche : le programmeur devrait pouvoir décrire davantage le traitement qu’il souhaite réaliser, tandis qu’un compilateur se chargerait de traduire ces instructions dans le langage de la machine.
Cette idée prolonge ses travaux précédents sur la programmation automatique, notamment le système A-0. Hopper ne cherche plus seulement à automatiser l’assemblage de routines : elle veut également rapprocher le langage du vocabulaire utilisé par les personnes qui travaillent avec les données.
Programmer avec des mots
La principale originalité de FLOW-MATIC apparaît immédiatement à la lecture d’un programme. Le langage utilise des verbes comme :
COMPARE
TRANSFER
MOVE
WRITE-ITEM
READ-ITEM
JUMP
REWIND
STOP
Une instruction peut par exemple prendre cette forme :
COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B).
Le programme peut ensuite déplacer un enregistrement :
TRANSFER A TO C.
puis demander son écriture :
WRITE-ITEM C.
Même sans connaître le langage, l’intention générale reste compréhensible. Cette lisibilité est précisément le but recherché.
Ce n’est pas du langage naturel
FLOW-MATIC ne permet pourtant pas d’écrire librement des phrases anglaises. Il possède un vocabulaire limité et une syntaxe précise. Le compilateur reconnaît uniquement les constructions prévues par le langage.
La nouveauté ne consiste donc pas à faire « comprendre l’anglais » à l’ordinateur, mais à réduire la distance entre le vocabulaire du métier et celui de la programmation.
Les données et les fichiers au centre du langage
FLOW-MATIC est conçu pour l’informatique de gestion des années 1950. Les entreprises utilisent alors principalement des bandes magnétiques pour conserver leurs données. Un traitement consiste souvent à lire plusieurs fichiers, comparer leurs enregistrements puis produire de nouvelles bandes.
Le langage distingue notamment trois niveaux :
- File : le fichier dans son ensemble ;
- Item : un enregistrement ;
- Field : un champ de cet enregistrement.
Le programme peut ainsi manipuler un élément nommé UNIT-PRICE ou PRODUCT-NO sans devoir répéter à chaque instruction son emplacement physique exact dans le fichier.
Cette séparation entre la structure des données et les opérations effectuées sur elles constitue l’une des contributions les plus importantes de FLOW-MATIC. Elle sera reprise et développée dans COBOL.
Comment le programme devient-il exécutable ?
L’utilisateur prépare son traitement sous forme de diagrammes, puis écrit les instructions FLOW-MATIC et les descriptions des fichiers. Ces informations sont ensuite enregistrées sur bande magnétique et fournies au compilateur.
Le compilateur combine le programme, les descriptions de données et différentes routines afin de produire un programme en code machine destiné aux ordinateurs UNIVAC.
problème → organigramme → programme FLOW-MATIC → compilation → programme UNIVAC
Le principe est fondamental : le programmeur décrit davantage ce qu’il veut faire, tandis que le logiciel se charge d’une partie croissante du travail nécessaire pour déterminer comment la machine doit l’exécuter.
Cette évolution accompagne le développement de l’UNIVAC, l’une des premières grandes familles d’ordinateurs destinées aux administrations et aux entreprises. Son histoire prolonge directement celle de l’ENIAC et des travaux de John Mauchly et J. Presper Eckert.
1957 : deux visions des langages de programmation
La seconde moitié des années 1950 voit apparaître deux approches majeures de la programmation de haut niveau.
Chez IBM, l’équipe de John Backus développe FORTRAN pour permettre aux scientifiques et aux ingénieurs d’exprimer plus facilement leurs calculs mathématiques. Le langage est notamment associé à l’IBM 704.
FLOW-MATIC répond à un autre besoin. Au lieu de privilégier les formules, il place les fichiers, les enregistrements et les traitements administratifs au centre du programme.
Cette différence est essentielle : les premiers langages de haut niveau ne cherchent déjà pas tous à résoudre les mêmes problèmes. FORTRAN parle principalement aux scientifiques ; FLOW-MATIC cherche à parler aux entreprises.
De FLOW-MATIC à COBOL
À la fin des années 1950, l’informatique commerciale rencontre un problème important : les programmes restent fortement liés aux machines pour lesquelles ils ont été écrits. Changer de constructeur peut obliger une entreprise à reprendre une grande partie de ses logiciels.
En 1959, plusieurs constructeurs, administrations et spécialistes se réunissent donc pour définir un langage commun destiné à l’informatique de gestion. Ces travaux conduisent à COBOL.
FLOW-MATIC n’est pas le seul langage étudié, mais son influence apparaît clairement. COBOL reprend notamment :
- un vocabulaire proche de l’anglais ;
- des noms de données explicites ;
- une forte orientation vers les fichiers ;
- la séparation entre description des données et traitement ;
- la volonté de rendre le programme compréhensible au-delà des seuls spécialistes de la machine.
Il serait toutefois incorrect d’écrire que Grace Hopper a inventé COBOL. COBOL est une création collective. Hopper et son équipe ont surtout démontré, avec FLOW-MATIC, qu’un langage commercial de ce type pouvait réellement fonctionner.
Pourquoi FLOW-MATIC est important
FLOW-MATIC disparaît rapidement derrière les langages plus largement diffusés qui lui succèdent. Son importance ne se mesure donc pas au nombre de programmes encore utilisés aujourd’hui.
Son apport se trouve dans une idée beaucoup plus durable : le langage de programmation n’a pas besoin de refléter directement le fonctionnement de l’ordinateur.
Avec FLOW-MATIC, les noms commencent à décrire les données manipulées, les verbes décrivent les opérations et le compilateur prend en charge une partie de la traduction vers la machine.
Le programmeur peut progressivement déplacer son attention :de « quelles instructions doit exécuter l’ordinateur ? » vers « quel traitement voulons-nous effectuer ? »
C’est cette évolution qui fait de FLOW-MATIC une étape importante entre les premiers systèmes de programmation automatique de Grace Hopper et COBOL, qui donnera à ces principes une portée beaucoup plus large.
Repères chronologiques
- 1952 : Grace Hopper développe le système A-0.
- Vers 1955 : développement de B-0 pour le traitement commercial.
- Fin 1956 : une première version de B-0/FLOW-MATIC devient opérationnelle.
- 1957 : poursuite du développement et utilisation de FLOW-MATIC dans l’environnement UNIVAC.
- 1958 : publication d’une documentation FLOW-MATIC destinée aux utilisateurs.
- 1959 : lancement des travaux conduisant à COBOL.
- 1960 : les premières implémentations de COBOL apparaissent sur plusieurs ordinateurs.
Sources principales
- Remington Rand UNIVAC / Sperry Rand, FLOW-MATIC Programming System, manuel U-1518, 1958.
- Jean E. Sammet, travaux historiques consacrés aux premiers langages de programmation.
- Computer History Museum, archives et entretiens consacrés à Grace Hopper.
