FLOW-MATIC

Last updated
FLOW-MATIC
Paradigm imperative
Designed by Remington Rand, Grace Hopper
First appeared1955 (1955)
Platform UNIVAC I
Influenced by
ARITH-MATIC, Laning and Zierler system
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.

Contents

Development

Hopper had found that business data processing customers were uncomfortable with mathematical notation: [1]

I used to be a mathematics professor. At that time I found there were a certain number of students who could not learn mathematics. I then was charged with the job of making it easy for businessmen to use our computers. I found it was not a question of whether they could learn mathematics or not, but whether they would. […] They said, 'Throw those symbols out — I do not know what they mean, I have not time to learn symbols.' I suggest a reply to those who would like data processing people to use mathematical symbols that they make the first attempt to teach those symbols to vice-presidents or a colonel or admiral. I assure you that I tried it.

In late 1953, she proposed that data processing problems should be expressed using English keywords, but Rand management considered the idea unfeasible. In early 1955, she and her team wrote a specification for such a programming language and implemented a prototype. [2] The FLOW-MATIC compiler became publicly available in early 1958 and was substantially complete in 1959. [3]

Innovations and influence

The Laning and Zierler system was the first programming language to parse algebraic formulae. When Hopper became aware of that language in 1954, it altered the trajectory of her work. [4] FLOW-MATIC was the first programming language to express operations using English-like statements. [3] 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. [3]

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

Sample program

A sample FLOW-MATIC program: [7] [8]

 (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. [9]
  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 [10]

Notes

  1. Hopper (1959) p. 198.
  2. Hopper (1978) p. 16.
  3. 1 2 3 Sammet (1969) p. 316
  4. Beyer, Kurt (February 10, 2012). "10". Grace Hopper and the Invention of the Information Age. MIT Press. ISBN   9780262517263.
  5. Sammet (1978) p. 204.
  6. Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM p. 30.
  7. Sperry Rand (1957) p. 7.
  8. Sammet (1969) p. 323.
  9. Hopper (1978) p. 18.
  10. Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM

Related Research Articles

<span class="mw-page-title-main">COBOL</span> Programming language with English-like syntax

COBOL is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily used in business, finance, and administrative systems for companies and governments. COBOL is still widely used in applications deployed on mainframe computers, such as large-scale batch and transaction processing jobs. Many large financial institutions were developing new systems in the language as late as 2006, but most programming in COBOL today is purely to maintain existing applications. Programs are being moved to new platforms, rewritten in modern languages or replaced with other software.

<span class="mw-page-title-main">Grace Hopper</span> American computer scientist, mathematician, and US Navy admiral (1906–1992)

Grace Brewster Hopper was an American computer scientist, mathematician, and United States Navy rear admiral. One of the first programmers of the Harvard Mark I computer, she was a pioneer of computer programming. Hopper was the first to devise the theory of machine-independent programming languages, and the FLOW-MATIC programming language she created using this theory was later extended by others to create COBOL, an early high-level programming language still in use today.

The A-0 system was an early compiler related tool developed for electronic computers, written by Grace Murray Hopper in 1951 and 1952 originally for the UNIVAC I. The A-0 functioned more as a loader or linker than the modern notion of a compiler. A program was specified as a sequence of subroutines and its arguments. The subroutines were identified by a numeric code and the arguments to the subroutines were written directly after each subroutine code. The A-0 system converted the specification into machine code that could be fed into the computer a second time to execute the said program.

ARITH-MATIC is an extension of Grace Hopper's A-2 programming language, developed around 1955. ARITH-MATIC was originally known as A-3, but was renamed by the marketing department of Remington Rand UNIVAC.

<span class="mw-page-title-main">John Mauchly</span> American physicist and computer scientist (1907–1980)

John William Mauchly was an American physicist who, along with J. Presper Eckert, designed ENIAC, the first general-purpose electronic digital computer, as well as EDVAC, BINAC and UNIVAC I, the first commercial computer made in the United States.

<span class="mw-page-title-main">Sperry Corporation</span> American equipment and electronics company (1910–1986)

Sperry Corporation was a major American equipment and electronics company whose existence spanned more than seven decades of the 20th century. Sperry ceased to exist in 1986 following a prolonged hostile takeover bid engineered by Burroughs Corporation, which merged the combined operation under the new name Unisys. Some of Sperry's former divisions became part of Honeywell, Lockheed Martin, Raytheon Technologies, and Northrop Grumman.

<span class="mw-page-title-main">UNIVAC I</span> First general-purpose computer designed for business application (1951)

The UNIVAC I was the first general-purpose electronic digital computer design for business application produced in the United States. It was designed principally by J. Presper Eckert and John Mauchly, the inventors of the ENIAC. Design work was started by their company, Eckert–Mauchly Computer Corporation (EMCC), and was completed after the company had been acquired by Remington Rand. In the years before successor models of the UNIVAC I appeared, the machine was simply known as "the UNIVAC".

<span class="mw-page-title-main">UNIVAC</span> Series of mainframe computer models

UNIVAC was a line of electronic digital stored-program computers starting with the products of the Eckert–Mauchly Computer Corporation. Later the name was applied to a division of the Remington Rand company and successor organizations.

<span class="mw-page-title-main">UNIVAC 1100/2200 series</span> Family of mainframe computers

The UNIVAC 1100/2200 series is a series of compatible 36-bit computer systems, beginning with the UNIVAC 1107 in 1962, initially made by Sperry Rand. The series continues to be supported today by Unisys Corporation as the ClearPath Dorado Series. The solid-state 1107 model number was in the same sequence as the earlier vacuum-tube computers, but the early computers were not compatible with their solid-state successors.

MATH-MATIC is the marketing name for the AT-3 compiler, an early programming language for the UNIVAC I and UNIVAC II.

<span class="mw-page-title-main">Remington Rand</span> American manufacturing company (1927–1955)

Remington Rand, Inc. was an early American business machine manufacturer, originally a typewriter manufacturer and in a later incarnation the manufacturer of the UNIVAC line of mainframe computers. Formed in 1927 following a merger, Remington Rand was a diversified conglomerate making other office equipment, electric shavers, etc. The Remington Rand Building at 315 Park Avenue South in New York City is a 20-floor skyscraper completed in 1911. After 1955, Remington Rand had a long series of mergers and acquisitions that eventually resulted in the formation of Unisys.

<span class="mw-page-title-main">Bob Bemer</span> American aerospace engineer

Robert William Bemer was a computer scientist best known for his work at IBM during the late 1950s and early 1960s.

<span class="mw-page-title-main">Keypunch</span> Device for punching holes into paper cards

A keypunch is a device for precisely punching holes into stiff paper cards at specific locations as determined by keys struck by a human operator. Other devices included here for that same function include the gang punch, the pantograph punch, and the stamp. The term was also used for similar machines used by humans to transcribe data onto punched tape media.

<span class="mw-page-title-main">History of programming languages</span> History of languages used to program computers

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

The Eckert–Mauchly Computer Corporation (EMCC) was a computer company founded by J. Presper Eckert and John Mauchly. It was incorporated on December 22, 1947. After building the ENIAC at the University of Pennsylvania, Eckert and Mauchly formed EMCC to build new computer designs for commercial and military applications. The company was initially called the Electronic Control Company, changing its name to Eckert–Mauchly Computer Corporation when it was incorporated. In 1950, the company was sold to Remington Rand, which later merged with Sperry Corporation to become Sperry Rand, and survives today as Unisys.

Jean E. Sammet was an American computer scientist who developed the FORMAC programming language in 1962. She was also one of the developers of the influential COBOL programming language.

AIMACO is an acronym for AIr MAterial COmpiler. It began around 1959 as the definition of a high level programming language influenced by the FLOW-MATIC language, developed by UNIVAC, and the COMTRAN programming language, developed by IBM. AIMACO, along with FLOW-MATIC and COMTRAN, were precursors to the COBOL programming language and influenced its development.

The Sort Merge Generator was an application developed by Betty Holberton in 1951 for the Univac I and is one of the first examples of using a computer to create a computer program. The input to the application was a specification of files and the kind of sort and merge operations to use, and the output would be machine code for performing the specification.

OS 2200 is the operating system for the Unisys ClearPath Dorado family of mainframe systems. The operating system kernel of OS 2200 is a lineal descendant of Exec 8 for the UNIVAC 1108 and was previously known as OS 1100. Documentation and other information on current and past Unisys systems can be found on the Unisys public support website.

Charles Abraham Katz was an American mathematician and computer scientist known for his contributions to early compiler development in the 1950s.

References