kids encyclopedia robot

FLOW-MATIC facts for kids

Kids Encyclopedia Facts
Quick facts for kids
FLOW-MATIC
Paradigm imperative
Designed by Remington Rand, Grace Hopper
First appeared 1955 (1955)
Platform UNIVAC I
Influenced by
ARITH-MATIC
Influenced
MATH-MATIC, AIMACO, COBOL

FLOW-MATIC, originally known as B-0 (Business Language version 0), was the first English-like data processing language. It was developed for the UNIVAC I at Remington Rand under Grace Hopper from 1955 to 1959, and helped shape the development of COBOL.

Innovations and influence

FLOW-MATIC was the first programming language to express operations using English-like statements. It was also the first system to distinctly separate the description of data from the operations on it. Its data definition language, unlike its executable statements, was not English-like; rather, data structures were defined by filling in pre-printed forms.

FLOW-MATIC and its direct descendant AIMACO shaped COBOL, which incorporated several of its elements:

  • Defining Input & Output Files and printed output in advance, separated into INPUT files, OUTPUT files and (HSP) High Speed Printer outputs. INPUT <FILE-NAME> <FILE-LETTER>; OUTPUT <FILE-NAME> <FILE-LETTER>; HSP <FILE-LETTER> .
  • Qualification of data-names (IN or OF clause).
  • IF END OF DATA (AT END) clause on file READ operations.
  • Figurative constant ZERO (originally ZZZ...ZZZ, where number of Zs indicated precision).
  • Dividing the program into sections, separating different parts of the program. Flow-Matic sections included Computer (Environment Division), Directory (Data Division), and Compiler (Procedure Division).

Sample program

A sample FLOW-MATIC program:

(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)

Sample Notes

  1. Note that this sample includes only the executable statements of the program, the COMPILER section. The record fields PRODUCT-NO and UNIT-PRICE would have been defined in the DIRECTORY section, which (as previously noted) did not use English-like syntax.
  2. Files are referred to by the letter at the end of the FILE-LETTER. Example: FILE-A is referred to later just by A and is for ease of reference in following code.
  3. Operations are numbered in an unbroken sequence from 0..n and are performed in that order unless a statement to the contrary is reached/made (executed) (JUMP, etc.).
  4. The highest numbered operation is the one that stops the program.
  5. A much more detailed overview of FLOW-MATIC is available in the manual entitled, FLOW-MATIC PROGRAMMING SYSTEM

See also

Kids robot.svg In Spanish: FLOW-MATIC para niños

kids search engine
FLOW-MATIC Facts for Kids. Kiddle Encyclopedia.