This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (January 2014) (Learn how and when to remove this message)
|
FACT is an early discontinued computer programming language, created by the Datamatic Division of Minneapolis Honeywell for its model 800 series business computers in 1959. FACT was an acronym for "Fully Automatic Compiling Technique".[1] It was an influence on the design of the COBOL programming language.
Paradigm | Procedural, imperative |
---|---|
Designed by | Computer Sciences Corporation, Honeywell |
First appeared | 1959 (1959) |
Influenced | |
COBOL |
Some of the design of FACT was based on the linguistic project Basic English, developed about 1925 by C.K. Ogden.
The software was actually designed by Computer Sciences Corporation (Fletcher Jones, Roy Nutt, and Robert L. Patrick) under contract to Richard Clippinger of Honeywell.
FACT was an influence in the design of COBOL, and is one of three predecessor languages credited in all COBOL manuals.
Several elements of FACT were incorporated into COBOL:
VALUE
clause).88
level data items).IN
orOF
clause).MOVE CORRESPONDING
).ON ERROR
clause).SORT
function.FACT was implemented in the 1960's, "Five FACT customers are writing all their applications using FACT" and "another dozen Honeywell customers use FACT to differing degrees.",[2] this included a bank and a military inventory management system. It was being used by Australian Department of Defence in the 1960s and 1970s.[clarification needed]
The following code samples from the simple payroll application in the FACT specification show the fixed-form nature of FACT and its similarities with COBOL.
File outlines:
O 1RU DETAIL-FILE, (DETAIL),(D)
O 2DATE
O 3MONTH
O 4DAY
O 5YEAR
O 6*EMPLOYEE-RECORD
O 7EMPLOYEE-NO, (EMPLOYNO)
O 8*NEW-EMPLOYEE,(NW)
O 9NAME
O 10RATE
O 11EXEMPTIONS,(EXEMPT)
O 12BOND-DEDUCT,(BONDEDUCT)
O 13BOND-DENOMINATION,(BONDENOM)
O 30I INTERNAL-FILE1
O 31WORKING-DATA
O 32 11 D BATCH-SUM
O 33 11 D BATCH-NUMBER
O 34 11 D BATCH-COUNT O
O 35 11 D 1SUM-OF-HOURS
O 36 11 D CARDS-IN-BATCH O
Source statements:
P 85BOND PROCEDURE. WRITE BONDORDER AND SUBTRACT 1FROM NUM.
P 86
P 87NOTE. PHASE I OF SAMPLE PROGRAM. THE FOLLOWING PROCEDURES ARE USED TO
P 88MAKE BATCH CHECKS DURING THE CARD READING PASS.
P 89
P 90SUMMATION PROCEDURE. ADD RP HOURS TO SUM-OF-HOURS. ADD 1TO CARDS-IN-
P 91-BATCH.
P 92
P 93BATCH-CHECK PROCEDURE. IF BATCH-SUM IS NOT EQUAL TO SUM-OF-HOURS OR BATCH-
P 94-COUNT IS NOT EQUAL TO CARDS-IN-BATCH SEE BAD-BATCH. SET SUM-OF-HOURS
P 95AND CARDS-IN-BATCH TO ZERO.
P 96
P 97BAD-BATCH PROCEDURE. REVERSE NEW-MASTER. CLOSE PAGE OF ERROR-REPORT.
P 98
P 99L. PUT ZEROS INTO PRINTLINE. SET NUM TO 8.
P 100
P 101 BUILD. PUT EMPLOYNO AND RP HOURS INTO (NUM)TH EN AND EH. SUB-
P 102 TRACT 1FROM CARDS-IN-BATCH AND NUM. IF CARDS-IN-BATCH IS ZERO WRITE
P 103 ERROR-REPORT, REVERSE NEW-MASTER, LEAVE PROCEDURE. GET NEXT GROUP.
P 104 IF NUM IS ZERO WRITE ERROR-REPORT AND GO TO L, OTHERWISE RETURN TO
P 105 BUILD. END OF PROCEDURE.
Report descriptions:
R 1 40ERROR-REPORT
A 2PAGE-HEADING HDEJ 2
F 3BATCH-NUMBER 24BATCH NO. ^
F 4PAGE-NUMBER 1 43IN ERROR PAGE ^
A 5COLUMN-HEADINGS HD 3
F 6 30EMP.NO. HOURS EMP.NO.HOURS^
F 7 60EMP.NO. HOURS EMP.NO.HOURS^
F 8 90EMP.NO. HOURS EMP.NO.HOURS^
F 9 120EMP.NO. HOURS EMP.NO.HOURS^
A 10ERROR-LINE OO 1
F 11 1ST EN 8^
F 12 1ST RH 14.^
F 13 2ND EN 23^
F 14 2ND RH 29.^
F 15 3RD EN 38^
F 16 3RD RH 44.^
R 101 4OBONDORDER
A 102 BOND-HEADING HDEJ 2
F 103 BPAGE 1
A 104 BONDORDER-LINE OO 1
F 105 M EMPLOYNO
F 106 M NAME
Report layouts:
L 1PAGE-HEADING BATCH NO. ^ IN ERROR PAGE ^
L 2COLUMN-HEADING EMP.NO. HOURS EMP.NO. HOURS EMP.NO. HOURS EMP.NO. HOURS EMP.NO. HOURS EMP.NO. HOURS EMP.NO. HOURS EMP.NO. HOURS
L 3ERROR-LINE ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^
L 4BOND-HEADING BOND ORDERS EMP. NO. NAME DATE BOND PAGE ^
L 5BONDORDER-LINE ^ ^ ^- ^- ^ . ^
L 6DEL-HEADING TERMINATIONS EMP. NO. DATE NAME BOND CR. TOTALS.. GROSS TAX FICA INSUR RET PAGE ^
L 7DELETIONS-LINE ^ ^- ^- ^ ^ . ^ . ^ . ^ . ^ . ^ . ^
L 8ERROR-HEADING ERRORS... EMP. NO. DATE TYPE PAGE ^
L 9ERROR-LINE ^ ^- ^- ^ ^
L 10TITLE-LINE PLACE CHECK FORM IN PRINTER
L 12 1PAYLINE ^ ^/ ^/ ^ .^ ^/ ^/ ^
L 13 2PAYLINE . ^ . ^ . ^ .^ . ^
L 14 3PAYLINE ^ $****. ^ . ^ . ^