flow-matic

FLOW-MATIC

FLOW-MATIC est l’un des premiers langages de programmation conçus pour le traitement des données commerciales. Développé dans les années 1950 par l’équipe de Grace Hopper chez Remington Rand UNIVAC, il poursuit une idée alors radicale : permettre de décrire un traitement informatique avec des mots proches de l’anglais courant plutôt qu’en manipulant directement des codes machine et des adresses mémoire.
Le projet porte d’abord le nom de B-0. Une première version devient opérationnelle à la fin de 1956, puis le système continue d’évoluer en 1957 sous le nom de FLOW-MATIC. Il s’adresse avant tout aux entreprises qui utilisent leurs ordinateurs pour gérer des stocks, des factures, des comptes ou de grands fichiers enregistrés sur bandes magnétiques.
FLOW-MATIC ne connaîtra jamais la diffusion de FORTRAN ou de COBOL. Pourtant, son influence est considérable. Noms de données lisibles, instructions formulées avec des verbes anglais et séparation entre description des données et opérations : plusieurs de ses principes réapparaissent dans COBOL à partir de 1959.

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.

Publications similaires

  • BASIC

    Le BASIC est un langage de programmation créé en 1964 au Dartmouth College par John G. Kemeny et Thomas E. Kurtz pour rendre l’informatique accessible aux débutants. Son nom signifie Beginner’s All-purpose Symbolic Instruction Code. Associé dès l’origine au temps partagé, BASIC permet à un étudiant de saisir quelques lignes, lancer son programme, voir immédiatement…

  • COBOL

    COBOL, acronyme de Common Business-Oriented Language, est un langage de programmation créé à partir de 1959 pour répondre à un problème devenu crucial : comment écrire des programmes de gestion capables de fonctionner sur des ordinateurs provenant de constructeurs différents ? À la fin des années 1950, IBM, UNIVAC, RCA, Honeywell, Burroughs et d’autres fabricants…

  • BCPL

    BCPL signifie Basic Combined Programming Language : une version simplifiée de CPL, conçue pour écrire des compilateurs et des logiciels système plus faciles à transporter d’une machine à l’autre. Au milieu des années 1960, les langages de programmation deviennent plus expressifs, mais leurs compilateurs restent souvent longs et difficiles à adapter. Un langage peut être…

  • ADA

    Ada est un langage de programmation créé à la demande du département de la Défense des États-Unis (DoD) à la fin des années 1970. Son objectif est inhabituel : il ne s’agit pas seulement de faciliter l’écriture des programmes, mais aussi de rendre plus fiables des logiciels complexes destinés à fonctionner pendant de nombreuses années….

  • Fortran

    FORTRAN, contraction de FORmula TRANslation (« traduction de formules »), est l’un des langages les plus importants de l’histoire de l’informatique. Développé chez IBM sous la direction de John Backus, il permet aux scientifiques et aux ingénieurs d’écrire leurs calculs sous une forme beaucoup plus proche des mathématiques que des instructions d’une machine.Lorsque le premier…

  • Speedcoding

    En 1953, alors que l’informatique n’en est encore qu’à ses débuts, IBM introduit un système de programmation qui va profondément transformer la manière d’utiliser les ordinateurs scientifiques : Speedcoding. Speedcoding est un système de programmation scientifique développé par IBM en 1953 pour l’IBM 701, sous la supervision de John W. Backus. Il simplifie l’écriture des…