Jump to content
Wikipedia The Free Encyclopedia

FACT (computer language)

From Wikipedia, the free encyclopedia
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
Paradigm Procedural, imperative
Designed by Computer Sciences Corporation, Honeywell
First appeared1959 (1959)
Influenced
COBOL

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.

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:

  • Defining data as levels, with group items and elementary items.
  • Assigning of initial values to data as it is being defined (VALUE clause).
  • Specifying a limited list of literal values allowed in a specific field (88 level data items).
  • A non-procedural report generator based on specifying the appearance of the desired report (Report Section in COBOL-66).
  • Qualification of data-names (IN or OF clause).
  • Group move of like-named items (MOVE CORRESPONDING).
  • Validity checks on procedural statements (ON ERROR clause).
  • Built-in SORT function.

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:

O1 RUDETAIL-FILE,(DETAIL),(D)
O2 DATE
O3 MONTH
O4 DAY
O5 YEAR
O6 *EMPLOYEE-RECORD
O7 EMPLOYEE-NO,(EMPLOYNO)
O8 *NEW-EMPLOYEE,(NW)
O9 NAME
O10 RATE
O11 EXEMPTIONS,(EXEMPT)
O12 BOND-DEDUCT,(BONDEDUCT)
O13 BOND-DENOMINATION,(BONDENOM)
O30 IINTERNAL-FILE1
O31 WORKING-DATA
O32 11 DBATCH-SUM
O33 11 DBATCH-NUMBER
O34 11 DBATCH-COUNTO
O35 11 D1 SUM-OF-HOURS
O36 11 DCARDS-IN-BATCHO

Source statements:

P85 BONDPROCEDURE.WRITEBONDORDERANDSUBTRACT1 FROMNUM.
P86
P87 NOTE.PHASEIOFSAMPLEPROGRAM.THEFOLLOWINGPROCEDURESAREUSEDTO
P88 MAKEBATCHCHECKSDURINGTHECARDREADINGPASS.
P89
P90 SUMMATIONPROCEDURE.ADDRPHOURSTOSUM-OF-HOURS.ADD1 TOCARDS-IN-
P91 -BATCH.
P92
P93 BATCH-CHECKPROCEDURE.IFBATCH-SUMISNOTEQUALTOSUM-OF-HOURSORBATCH-
P94 -COUNTISNOTEQUALTOCARDS-IN-BATCHSEEBAD-BATCH.SETSUM-OF-HOURS
P95 ANDCARDS-IN-BATCHTOZERO.
P96
P97 BAD-BATCHPROCEDURE.REVERSENEW-MASTER.CLOSEPAGEOFERROR-REPORT.
P98
P99 L.PUTZEROSINTOPRINTLINE.SETNUMTO8.
P100
P101 BUILD.PUTEMPLOYNOANDRPHOURSINTO (NUM)THENANDEH.SUB-
P102 TRACT1 FROMCARDS-IN-BATCHANDNUM.IFCARDS-IN-BATCHISZEROWRITE
P103 ERROR-REPORT,REVERSENEW-MASTER,LEAVEPROCEDURE.GETNEXTGROUP.
P104 IFNUMISZEROWRITEERROR-REPORTANDGOTOL,OTHERWISERETURNTO
P105 BUILD.ENDOFPROCEDURE.

Report descriptions:

R1 40ERROR-REPORT
A2 PAGE-HEADINGHDEJ2
F3 BATCH-NUMBER24BATCHNO.^
F4 PAGE-NUMBER1 43INERROR PAGE ^
A5 COLUMN-HEADINGSHD3
F6 30EMP.NO.HOURSEMP.NO.HOURS^
F7 60EMP.NO.HOURSEMP.NO.HOURS^
F8 90EMP.NO.HOURSEMP.NO.HOURS^
F9 120EMP.NO.HOURSEMP.NO.HOURS^
A10 ERROR-LINEOO1
F11 1STEN8 ^
F12 1STRH 14 .^
F13 2NDEN23 ^
F14 2NDRH 29 .^
F15 3RDEN38 ^
F16 3RDRH 44 .^
R101 4OBONDORDER
A102 BOND-HEADINGHDEJ2
F103 BPAGE1
A104 BONDORDER-LINEOO1
F105 MEMPLOYNO
F106 MNAME

Report layouts:

L1 PAGE-HEADINGBATCHNO.^INERROR PAGE ^
L2 COLUMN-HEADINGEMP.NO.HOURSEMP.NO.HOURSEMP.NO.HOURSEMP.NO.HOURSEMP.NO.HOURSEMP.NO.HOURSEMP.NO.HOURSEMP.NO.HOURS
L3 ERROR-LINE^.^^.^^.^^.^^.^^.^^.^^.^
L4 BOND-HEADINGBONDORDERSEMP.NO.NAMEDATE BONDPAGE ^
L5 BONDORDER-LINE^^^-^-^.^
L6 DEL-HEADINGTERMINATIONSEMP.NO.DATE NAMEBONDCR.TOTALS..GROSSTAXFICAINSURRETPAGE ^
L7 DELETIONS-LINE^^-^-^^.^.^.^.^.^.^
L8 ERROR-HEADINGERRORS...EMP.NO.DATE TYPE PAGE ^
L9 ERROR-LINE^^-^-^^
L10 TITLE-LINEPLACECHECKFORMINPRINTER
L12 1PAYLINE^^/^/^.^^/^/^
L13 2PAYLINE.^.^.^.^.^
L14 3PAYLINE^$****.^.^.^

Sources

[edit ]

References

[edit ]
  1. ^ FACT Fully Automatic Compiling Technique (PDF). Honeywell Electronic Data Processing. 1960. DSI-27.
  2. ^ 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.

AltStyle によって変換されたページ (->オリジナル) /