FAKT (język komputerowy) - FACT (computer language)

FAKT
Paradygmat proceduralne , imperatywne
Zaprojektowany przez Computer Sciences Corporation , Honeywell
Po raz pierwszy pojawiły się 1959 ( 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 ( VALUEklauzula).
  • Określenie ograniczonej listy wartości literałowych dozwolonych w określonym polu ( 88elementy danych poziomu).
  • Nieprocesowy generator raportów oparty na określeniu wyglądu żądanego raportu (Sekcja Raport w COBOL-66).
  • Kwalifikacja nazw danych ( INlub OFklauzula).
  • Grupowe przenoszenie elementów o podobnych nazwach ( MOVE CORRESPONDING).
  • Kontrole ważności oświadczeń proceduralnych ( ON ERRORklauzula).
  • Wbudowana SORTfunkcja.

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

  1. ^ FAKT W pełni automatyczna technika kompilacji (PDF) . Elektroniczne przetwarzanie danych Honeywell. 1960. DSI-27.
  2. ^ 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 .