FAKT (język komputerowy) - FACT (computer language)
Paradygmat | proceduralne , imperatywne |
---|---|
Zaprojektowany przez | Computer Sciences Corporation , Honeywell |
Po raz pierwszy pojawiły się | 1959 |
Pod wpływem | |
COBOL |
FACT to wcześnie wycofany język programowania komputerowego , stworzony przez oddział Datamatic w Minneapolis Honeywell dla swoich komputerów biznesowych model 800 w 1959 roku. FACT był akronimem od „Fully Automatic Compiling Technique”. Miało to wpływ na projekt języka programowania COBOL .
Część projektu FACT opierała się na projekcie językowym Basic English , opracowanym około 1925 roku przez CK Ogdena .
Oprogramowanie zostało zaprojektowane przez Computer Sciences Corporation (Fletcher Jones, Roy Nutt i Robert L. Patrick) w ramach kontraktu z Richardem Clippingerem z Honeywell.
Składki na COBOL
FACT miał wpływ na projekt COBOL- a i jest jednym z trzech poprzednich języków występujących we wszystkich podręcznikach COBOL-a.
Kilka elementów FACT zostało włączonych do COBOL:
- Definiowanie danych jako poziomów, z elementami grupowymi i elementarnymi.
- Przypisywanie wartości początkowych do danych w trakcie ich definiowania (
VALUE
klauzula). - Określenie ograniczonej listy wartości literałowych dozwolonych w określonym polu (
88
elementy danych poziomu). - Nieprocesowy generator raportów oparty na określeniu wyglądu żądanego raportu (Sekcja Raport w COBOL-66).
- Kwalifikacja nazw danych (
IN
lubOF
klauzula). - Grupowe przenoszenie elementów o podobnych nazwach (
MOVE CORRESPONDING
). - Kontrole ważności oświadczeń proceduralnych (
ON ERROR
klauzula). - Wbudowana
SORT
funkcja.
Realizacje
Nie jest jasne, czy firma Honeywell kiedykolwiek wydała działającą wersję FACT. Język został zaprojektowany i opublikowano szczegółową specyfikację (patrz referencje), ale stwierdzono, że „Computer Sciences Corporation ma również umowę na wdrożenie FACT”, co oznacza, że w tym czasie nadal pracowali nad wdrożeniem. Mniej więcej w tym czasie komitet krótkiego zasięgu rozpoczął prace nad COBOL-em, a Roy Nutt, jeden z trzech dyrektorów CSC, rozpoczął współpracę z tą komisją nad COBOL-em. Nie jest jasne, czy kiedykolwiek wrócił, aby zaimplementować FACT, czy też Honeywell skoncentrował swoje wysiłki programistyczne na kompilatorze COBOL.
FACT został jednak wdrożony – był używany przez australijski Departament Obrony w latach 60. i wczesnych 70. XX wieku.
Przykładowy program
Poniższe przykłady kodu z prostej aplikacji płacowej w specyfikacji FACT pokazują stałą formę FACT i jego podobieństwa do języka COBOL.
Konspekty plików:
O 1 RU DETAIL-FILE, (DETAIL),(D)
O 2 DATE
O 3 MONTH
O 4 DAY
O 5 YEAR
O 6 *EMPLOYEE-RECORD
O 7 EMPLOYEE-NO, (EMPLOYNO)
O 8 *NEW-EMPLOYEE,(NW)
O 9 NAME
O 10 RATE
O 11 EXEMPTIONS,(EXEMPT)
O 12 BOND-DEDUCT,(BONDEDUCT)
O 13 BOND-DENOMINATION,(BONDENOM)
O 30 I INTERNAL-FILE1
O 31 WORKING-DATA
O 32 11 D BATCH-SUM
O 33 11 D BATCH-NUMBER
O 34 11 D BATCH-COUNT O
O 35 11 D 1 SUM-OF-HOURS
O 36 11 D CARDS-IN-BATCH O
Oświadczenia źródłowe:
P 85 BOND PROCEDURE. WRITE BONDORDER AND SUBTRACT 1 FROM NUM.
P 86
P 87 NOTE. PHASE I OF SAMPLE PROGRAM. THE FOLLOWING PROCEDURES ARE USED TO
P 88 MAKE BATCH CHECKS DURING THE CARD READING PASS.
P 89
P 90 SUMMATION PROCEDURE. ADD RP HOURS TO SUM-OF-HOURS. ADD 1 TO CARDS-IN-
P 91 -BATCH.
P 92
P 93 BATCH-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 95 AND CARDS-IN-BATCH TO ZERO.
P 96
P 97 BAD-BATCH PROCEDURE. REVERSE NEW-MASTER. CLOSE PAGE OF ERROR-REPORT.
P 98
P 99 L. 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 1 FROM 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.
Opisy raportów:
R 1 40ERROR-REPORT
A 2 PAGE-HEADING HDEJ 2
F 3 BATCH-NUMBER 24BATCH NO. ^
F 4 PAGE-NUMBER 1 43IN ERROR PAGE ^
A 5 COLUMN-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 10 ERROR-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
Układy raportów:
L 1 PAGE-HEADING BATCH NO. ^ IN ERROR PAGE ^
L 2 COLUMN-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 3 ERROR-LINE ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^
L 4 BOND-HEADING BOND ORDERS EMP. NO. NAME DATE BOND PAGE ^
L 5 BONDORDER-LINE ^ ^ ^- ^- ^ . ^
L 6 DEL-HEADING TERMINATIONS EMP. NO. DATE NAME BOND CR. TOTALS.. GROSS TAX FICA INSUR RET PAGE ^
L 7 DELETIONS-LINE ^ ^- ^- ^ ^ . ^ . ^ . ^ . ^ . ^ . ^
L 8 ERROR-HEADING ERRORS... EMP. NO. DATE TYPE PAGE ^
L 9 ERROR-LINE ^ ^- ^- ^ ^
L 10 TITLE-LINE PLACE CHECK FORM IN PRINTER
L 12 1PAYLINE ^ ^/ ^/ ^ .^ ^/ ^/ ^
L 13 2PAYLINE . ^ . ^ . ^ .^ . ^
L 14 3PAYLINE ^ $****. ^ . ^ . ^
Źródła
- Jean E. Sammet (1969). JĘZYKI PROGRAMOWANIA: Historia i podstawy . Englewood Cliffs, NJ: Prentice-Hall. s. 316-324. LCCN 68028110 . OL 5619276M .
- FAKT W pełni automatyczna technika kompilacji Nowy język biznesowy (PDF) . 1960. 160-2M.
Bibliografia
- ^ FAKT W pełni automatyczna technika kompilacji (PDF) . Elektroniczne przetwarzanie danych Honeywell. 1960. DSI-27.
- ^ Clippinger, RF (1 sierpnia 1962). „Fakt” . Dziennik komputerowy . 5 (2): 112–119 (118 - Doświadczenie z wykorzystaniem FAKTU ). doi : 10.1093/comjnl/5.2.112 . ISSN 0010-4620 .