Home  

Random  

Nearby  



Log in  



Settings  



Donate  



About Wikipedia  

Disclaimers  



Wikipedia





FACT (computer language)





Article  

Talk  



Language  

Watch  

Edit  





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.

FACT
ParadigmProcedural, imperative
Designed byComputer Sciences Corporation, Honeywell
First appeared1959 (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.

Contributions to COBOL

edit

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:

Implementations

edit

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]

Sample program

edit

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                                    ^        $****. ^                                     . ^             . ^

Sources

edit

References

edit
  1. ^ FACT Fully Automatic Compiling Technique (PDF). Honeywell Electronic Data Processing. 1960. DSI-27.
  • ^ Clippinger, R. F. (1 August 1962). "Fact". The Computer Journal. 5 (2): 112–119 (118 - Experience with the use of FACT). doi:10.1093/comjnl/5.2.112. ISSN 0010-4620.

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=FACT_(computer_language)&oldid=1176202471"
     



    Last edited on 20 September 2023, at 05:07  





    Languages

     


    Português
     

    Wikipedia


    This page was last edited on 20 September 2023, at 05:07 (UTC).

    Content is available under CC BY-SA 4.0 unless otherwise noted.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Terms of Use

    Desktop