FLOW-MATIC - FLOW-MATIC

FLOW-MATIC
Paradigme impératif
Conçu par Remington Rand , Grace Hopper
Première apparition 1955 ( 1955 )
Plate-forme UNIVAC I
Influencé par
ARITH-MATIQUE
Influencé
MATH-MATIC , AIMACO , COBOL

FLOW-MATIC , initialement connu sous le nom de B-0 ( Business Language version 0 ), a été le premier langage informatique de type anglais. Il a été développé pour l' UNIVAC I à Remington Rand sous Grace Hopper de 1955 à 1959, et a contribué à façonner le développement de COBOL .

Développement

Hopper avait découvert que les clients du traitement de données commerciales n'étaient pas à l'aise avec la notation mathématique :

J'étais professeur de mathématiques. A cette époque, j'ai découvert qu'il y avait un certain nombre d'étudiants qui ne pouvaient pas apprendre les mathématiques. J'ai ensuite été chargé de « faire en sorte que les hommes d'affaires puissent facilement utiliser nos ordinateurs. J'ai découvert qu'il ne s'agissait pas de savoir s'ils pouvaient apprendre les mathématiques ou non, mais s'ils le feraient. […] Ils ont dit : « Jetez ces symboles, je ne sais pas ce qu'ils signifient, je n'ai pas le temps d'apprendre les symboles. Je suggère une réponse à ceux qui voudraient que les informaticiens utilisent des symboles mathématiques qu'ils essaient d'abord d'enseigner ces symboles aux vice-présidents ou à un colonel ou un amiral. Je vous assure que je l'ai essayé.¨

À la fin de 1953, elle a proposé que les problèmes de traitement des données soient exprimés à l'aide de mots-clés anglais, mais la direction de Rand considérait l'idée comme irréalisable. Au début de 1955, elle et son équipe ont écrit une spécification pour un tel langage de programmation et mis en œuvre un prototype. Le compilateur FLOW-MATIC est devenu accessible au public au début de 1958 et était pratiquement terminé en 1959.

Innovations et rayonnement

FLOW-MATIC a été le premier langage de programmation à exprimer des opérations à l'aide d'instructions de type anglais . C'était aussi le premier système à séparer distinctement la description des données des opérations sur celles-ci. Son langage de définition de données , contrairement à ses instructions exécutables, n'était pas de type anglais ; plutôt, les structures de données ont été définies en remplissant des formulaires pré-imprimés.

FLOW-MATIC et son descendant direct AIMACO en forme de COBOL , qui a incorporé plusieurs de ses éléments :

  • Définition des fichiers d'entrée et de sortie et de la sortie imprimée à l'avance, séparés en fichiers d'ENTRÉE, en fichiers de SORTIE et en sorties d'imprimante haute vitesse (HSP). INPUT <FILE-NAME> <FILE-LETTER>; OUTPUT <FILE-NAME> <FILE-LETTER>; HSP <FILE-LETTER>.
  • Qualification des noms de données ( INou OFclause).
  • IF END OF DATA (AT END)clause sur les READopérations sur les fichiers .
  • Constante figurative ZERO(à l'origine ZZZ...ZZZ, où le nombre de Zs indiquait la précision).
  • Diviser le programme en sections, séparer les différentes parties du programme. Les sections Flow-Matic comprenaient Computer(Division de l'environnement), Directory(Division des données) et Compiler(Division de la procédure).

Exemple de programme

Un exemple de programme FLOW-MATIC :

 (0)  INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV
     FILE-D ; HSP D .
 (1)  COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO OPERATION 10 ;
     IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 .
 (2)  TRANSFER A TO D .
 (3)  WRITE-ITEM D .
 (4)  JUMP TO OPERATION 8 .
 (5)  TRANSFER A TO C .
 (6)  MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
 (7)  WRITE-ITEM C .
 (8)  READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 .
 (9)  JUMP TO OPERATION 1 .
(10)  READ-ITEM B ; IF END OF DATA GO TO OPERATION 12 .
(11)  JUMP TO OPERATION 1 .
(12)  SET OPERATION 9 TO GO TO OPERATION 2 .
(13)  JUMP TO OPERATION 2 .
(14)  TEST PRODUCT-NO (B) AGAINST ; IF EQUAL GO TO OPERATION 16 ;
     OTHERWISE GO TO OPERATION 15 .
(15)  REWIND B .
(16)  CLOSE-OUT FILES C ; D .
(17)  STOP . (END)

Exemples de notes

  1. Notez que cet exemple comprend uniquement les instructions exécutables du programme, la COMPILERsection. Les champs d'enregistrement PRODUCT-NOet UNIT-PRICEauraient été définis dans la DIRECTORYsection, qui ( comme indiqué précédemment ) n'utilisait pas la syntaxe de type anglais.
  2. Les fichiers sont référencés par la lettre à la fin de la FILE-LETTER. Exemple : FILE-A est référencé plus tard par A et sert à faciliter la référence dans le code suivant.
  3. Les opérations sont numérotées dans une séquence ininterrompue de 0 à n et sont exécutées dans cet ordre à moins qu'une déclaration contraire ne soit atteinte/faite (exécutée) (JUMP, etc.).
  4. L'opération portant le numéro le plus élevé est celle qui arrête le programme.
  5. Un aperçu beaucoup plus détaillé de FLOW-MATIC est disponible dans le manuel intitulé FLOW-MATIC PROGRAMMING SYSTEM

Remarques

Les références

  • Hopper, Grace (1978). Discours liminaire, Histoire des langages de programmation I . ACM. p. 16–20. ISBN  0-12-745040-8
  • Hopper, Grace (1959). « Programmation automatique : état actuel et tendances futures », Mécanisation des processus de pensée , Symposium national du laboratoire de physique 10. Her Majesty's Stationery Office. pp 155-200, cité dans Knuth, Donald ; Trabb Pardo, Luis (août 1976). Les premiers développements des langages de programmation (rapport technique). Département d'informatique, École des sciences humaines et des sciences, Université de Stanford . Récupéré le 2016-03-19 .
  • Sammet, Jean (1969). Langages de programmation : histoire et fondamentaux . Prentice Hall. p. 316-324. ISBN  0-13-729988-5
  • Sammet, Jean (1978). "Les débuts de l'histoire de COBOL", Histoire des langages de programmation I . ACM. p. 199–243. ISBN  0-12-745040-8
  • Sperry Rand Corporation (1957) Présentation d'un nouveau langage pour la programmation automatique : Univac Flow-Matic
  • Remington Rand Univac une division de Sperry Rand Corporation (1957). SYSTÈME DE PROGRAMMATION FLOW-MATIC FLOW-MATIC_Programming_System_1958.pdf
  • Cet article est basé sur du matériel extrait du Dictionnaire gratuit en ligne de l'informatique avant le 1er novembre 2008 et incorporé sous les termes de "relicensing" de la GFDL , version 1.3 ou ultérieure.