FLOW-MATIC
Encyclopedia
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
UNIVAC I
The UNIVAC I was the first commercial computer produced in the United States. It was designed principally by J. Presper Eckert and John Mauchly, the inventors of the ENIAC...

 at Remington Rand
Remington Rand
Remington Rand was an early American business machines manufacturer, best known originally as a typewriter manufacturer and in a later incarnation as the manufacturer of the UNIVAC line of mainframe computers but with antecedents in Remington Arms in the early nineteenth century. For a time, the...

 under Grace Hopper
Grace Hopper
Rear Admiral Grace Murray Hopper was an American computer scientist and United States Navy officer. A pioneer in the field, she was one of the first programmers of the Harvard Mark I computer, and developed the first compiler for a computer programming language...

.

Development

Hopper had found that business data processing customers were uncomfortable with mathematical notation. In late 1953 she proposed that data processing problems should be expressed using English keywords, but Rand management considered the idea infeasible. In early 1955, she and her team wrote a specification for such a programming language and implemented a prototype. The FLOW-MATIC compiler became publicly available in early 1958 and was substantially complete in 1959.

Innovations and Influence

First, FLOW-MATIC was the first programming language to express operations using English-like statements.

Second, FLOW-MATIC was 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 was a major influence in the design of COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

, since only it and its direct descendent AIMACO were in actual use at the time. Several elements of Flow-Matic were incorporated into COBOL:
  • Defining Files in advance, and separating into INPUT and OUTPUT files.
  • 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 Z's 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 ZZZZZZZZZZZZ ; IF EQUAL GO TO OPERATION 16 ;
OTHERWISE GO TO OPERATION 15 .
(15) REWIND B .
(16) CLOSE-OUT FILES C ; D .
(17) STOP . (END)

Note that this sample includes only the executable statements of the program, the COMPILER section (corresponding to COBOL's Procedure Division). The record fields PRODUCT-NO and UNIT-PRICE would have been defined in the DIRECTORY section (corresponding to COBOL's Data Division), which did not use English-like syntax.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK