ФАКТ (компьютерный язык)
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( январь 2014 г. ) |
Парадигма | Процессуальный , императивный |
---|---|
Разработано | Корпорация компьютерных наук , Honeywell |
Впервые появился | 1959 |
Под влиянием | |
КОБОЛ |
FACT — это язык программирования , производство которого было прекращено раньше всех, созданное подразделением Datamatic компании Honeywell в Миннеаполисе для бизнес-компьютеров серии 800 в 1959 году. FACT — это аббревиатура от «Полностью автоматическая техника компиляции». [1] Это оказало влияние на разработку языка программирования COBOL .
Часть дизайна FACT была основана на лингвистическом проекте Basic English , разработанном около 1925 года К. К. Огденом .
На самом деле программное обеспечение было разработано Корпорацией компьютерных наук ( Флетчер Джонс , Рой Натт и Роберт Л. Патрик) по контракту с Ричардом Клиппингером из Honeywell.
Вклад в КОБОЛ
[ редактировать ]FACT оказал влияние на разработку COBOL и является одним из трех языков-предшественников, упомянутых во всех руководствах по COBOL.
Несколько элементов FACT были включены в COBOL:
- Определение данных как уровней с групповыми элементами и элементарными элементами.
- Присвоение начальных значений данным по мере их определения (
VALUE
пункт). - Указание ограниченного списка литеральных значений, разрешенных в определенном поле (
88
элементы данных уровня). - Непроцедурный генератор отчетов, основанный на указании внешнего вида желаемого отчета (раздел «Отчет» в COBOL-66).
- Квалификация имен данных (
IN
илиOF
пункт). - Групповое перемещение одноименных элементов (
MOVE CORRESPONDING
). - Проверка действительности процедурных утверждений (
ON ERROR
пункт). - Встроенный
SORT
функция.
Реализации
[ редактировать ]FACT был реализован в 1960-х годах: «Пять клиентов FACT пишут все свои приложения с использованием FACT» и «еще дюжина клиентов Honeywell используют FACT в разной степени». [2] сюда входили банк и система управления военными запасами . Он использовался Министерством обороны Австралии в 1960-х и 1970-х годах. [ нужны разъяснения ]
Пример программы
[ редактировать ]Следующие примеры кода из простого приложения расчета заработной платы в спецификации FACT демонстрируют фиксированную природу FACT и его сходство с COBOL.
Контуры файла:
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
Исходные утверждения:
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.
Описания отчетов:
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
Макеты отчетов:
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 ^ $****. ^ . ^ . ^
Источники
[ редактировать ]- Жан Э. Саммет (1969). ЯЗЫКИ ПРОГРАММИРОВАНИЯ: История и основы . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. стр. 316–324. LCCN 68028110 . ОЛ 5619276М .
- ФАКТ Полностью автоматическая методика компиляции нового делового языка (PDF) . 1960. 160-2М.
Ссылки
[ редактировать ]- ^ ФАКТ: Метод полностью автоматического компиляции (PDF) . Электронная обработка данных Honeywell. 1960. ДСИ-27.
- ^ Клиппингер, РФ (1 августа 1962 г.). "Факт". Компьютерный журнал . 5 (2): 112–119 (118 — Опыт использования ФАКТА ). дои : 10.1093/comjnl/5.2.112 . ISSN 0010-4620 .