ФАКТ (компьютерный язык) - FACT (computer language) - Wikipedia
Эта статья включает в себя список общих Рекомендации, но он остается в основном непроверенным, потому что ему не хватает соответствующих встроенные цитаты.Январь 2014) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигма | Процедурный, императив |
---|---|
Разработано | Корпорация компьютерных наук, Honeywell |
Впервые появился | 1959 |
Под влиянием | |
КОБОЛ |
ФАКТ - это язык программирования, который ранее не выпускался, созданный отделом Datamatic Миннеаполис Ханиуэлл для своих бизнес-компьютеров серии 800 в 1959 году. FACT было аббревиатурой от «полностью автоматической техники компиляции».[1] Это повлияло на дизайн КОБОЛ язык программирования.
Часть дизайна FACT была основана на лингвистическом проекте Начальный английский, разработанный около 1925 г. C.K. Огден.
Программное обеспечение было фактически разработано Computer Sciences Corporation (Fletcher Jones, Рой Натт, и Роберт Л. Патрик) по контракту с Ричардом Клиппингером из Honeywell.
Вклад в COBOL
ФАКТ оказал влияние на дизайн КОБОЛ, и является одним из трех языков-предшественников, указанных во всех руководствах по COBOL.
В COBOL были включены несколько элементов FACT:
- Определение данных как уровней с элементами группы и элементарными элементами.
- Присвоение начальных значений данным по мере их определения (
ЦЕНИТЬ
пункт). - Указание ограниченного списка литеральных значений, разрешенных в определенном поле (
88
элементы данных уровня). - Генератор непроцедурных отчетов, основанный на указании внешнего вида желаемого отчета (Раздел отчетов в COBOL-66).
- Квалификация имен данных (
В
или жеИЗ
пункт). - Групповое перемещение одноименных предметов (
ПЕРЕМЕСТИТЬ КОРРЕСПОНДИНГ
). - Проверка действительности процедурных заявлений (
ПО ОШИБКЕ
пункт). - Встроенный
СОРТИРОВАТЬ
функция.
Реализации
Неясно, была ли когда-либо выпущена рабочая версия FACT компанией Honeywell. Был разработан язык и выпущена подробная спецификация (см. Ссылки), но в нем говорилось, что «Computer Sciences Corporation также имеет контракт на реализацию FACT», что означает, что они все еще работали над реализацией в то время. Примерно в то же время комитет ближнего действия приступил к разработке COBOL, и Рой Натт, один из трех руководителей CSC, начал работать с этим комитетом над COBOL. Неясно, вернулся ли он когда-нибудь, чтобы реализовать FACT, или Honeywell сосредоточила свои усилия по программированию на компиляторе COBOL.
ФАКТ был реализован,[2] однако - он использовался Министерством обороны Австралии в 1960-х и начале 1970-х годов.[требуется разъяснение ]
Пример программы
Следующие примеры кода из простого приложения для расчета заработной платы в Спецификация FACT показать фиксированную природу FACT и его сходство с COBOL.
Контуры файла:
О 1 RU ДЕТАЛЬ-ФАЙЛ, (ДЕТАЛИ),(D)О 2 ДАТАО 3 МЕСЯЦО 4 ДЕНЬО 5 ГОДО 6 *СОТРУДНИК-ЗАПИСЬО 7 СОТРУДНИК №, (EMPLOYNO)О 8 *НОВЫЙ СОТРУДНИК,(NW)О 9 ИМЯО 10 СТАВКАО 11 ИСКЛЮЧЕНИЯ,(ОСВОБОЖДАТЬ)О 12 ОБЛИГАЦИЯ-ВЫВОД,(BONDEDUCT)О 13 ОБЛИГАЦИИ-НАИМЕНОВАНИЕ,(БОНДЕНОМ)О 30 я ВНУТРЕННИЙ-ФАЙЛ1О 31 РАБОЧИЕ ДАННЫЕО 32 11 D BATCH-SUMО 33 11 D СЕРИЙНЫЙ НОМЕРО 34 11 D BATCH-COUNT ОО 35 11 D 1 СУММА ЧАСОВО 36 11 D КАРТЫ В ПАКЕТЕ О
Исходные заявления:
п 85 СВЯЗЬ ПРОЦЕДУРА. ЗАПИСЫВАТЬ БОНДОРДЕР И ВЫЧИТАТЬ 1 ИЗ NUM.п 86п 87 ПРИМЕЧАНИЕ. ФАЗА я ИЗ ОБРАЗЕЦ ПРОГРАММА. THE СЛЕДУЮЩИЙ ПРОЦЕДУРЫ НАХОДЯТСЯ ИСПОЛЬЗОВАЛ Кп 88 ДЕЛАТЬ ПАРТИЯ ПРОВЕРКИ В ТЕЧЕНИЕ THE КАРТА ЧТЕНИЕ ПРОХОДИТЬ.п 89п 90 СУММИРОВАНИЕ ПРОЦЕДУРА. ДОБАВИТЬ RP ЧАСЫ К СУММА ЧАСОВ. ДОБАВИТЬ 1 К КАРТЫ-п 91 -ПАРТИЯ.п 92п 93 ПРОВЕРКА ПАРТИИ ПРОЦЕДУРА. ЕСЛИ BATCH-SUM ЯВЛЯЕТСЯ НЕТ РАВНЫЙ К СУММА ЧАСОВ ИЛИ ЖЕ ПАРТИЯ-п 94 -СЧИТАТЬ ЯВЛЯЕТСЯ НЕТ РАВНЫЙ К КАРТЫ В ПАКЕТЕ ВИДЕТЬ BAD-BATCH. НАБОР СУММА ЧАСОВп 95 И КАРТЫ В ПАКЕТЕ К НУЛЬ.п 96п 97 BAD-BATCH ПРОЦЕДУРА. ОБЕСПЕЧИТЬ РЕГРЕСС НОВИНКА-МАСТЕР. ЗАКРЫТЬ СТРАНИЦА ИЗ СООБЩЕНИЕ ОБ ОШИБКЕ.п 98п 99 L. ПОЛОЖИТЬ НУЛЕЙ В PRINTLINE. НАБОР NUM К 8.п 100п 101 СТРОИТЬ. ПОЛОЖИТЬ EMPLOYNO И RP ЧАСЫ В (NUM)TH EN И EH. SUB-п 102 ТРАКТ 1 ИЗ КАРТЫ В ПАКЕТЕ И NUM. ЕСЛИ КАРТЫ В ПАКЕТЕ ЯВЛЯЕТСЯ НУЛЬ ЗАПИСЫВАТЬп 103 СООБЩЕНИЕ ОБ ОШИБКЕ, ОБЕСПЕЧИТЬ РЕГРЕСС НОВИНКА-МАСТЕР, ПОКИНУТЬ ПРОЦЕДУРА. ПОЛУЧАТЬ СЛЕДУЮЩИЙ ГРУППА.п 104 ЕСЛИ NUM ЯВЛЯЕТСЯ НУЛЬ ЗАПИСЫВАТЬ СООБЩЕНИЕ ОБ ОШИБКЕ И ИДТИ К L, ИНАЧЕ ВОЗВРАЩАТЬСЯ Кп 105 СТРОИТЬ. КОНЕЦ ИЗ ПРОЦЕДУРА.
Описания отчетов:
р 1 40СООБЩЕНИЕ ОБ ОШИБКЕА 2 ЗАГОЛОВОК HDEJ 2F 3 СЕРИЙНЫЙ НОМЕР 24ПАРТИЯ НЕТ. ^F 4 НОМЕР СТРАНИЦЫ 1 43В ОШИБКА СТРАНИЦА ^А 5 КОЛОННЫ-ЗАГОЛОВКИ HD 3F 6 30EMP.НЕТ. ЧАСЫ EMP.НЕТ.ЧАСЫ^F 7 60EMP.НЕТ. ЧАСЫ EMP.НЕТ.ЧАСЫ^F 8 90EMP.НЕТ. ЧАСЫ EMP.НЕТ.ЧАСЫ^F 9 120EMP.НЕТ. ЧАСЫ EMP.НЕТ.ЧАСЫ^А 10 ERROR-LINE OO 1F 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 .^р 101 4ОБОНДОРДЕРА 102 ОБЛИГАЦИЯ HDEJ 2F 103 BPAGE 1А 104 BONDORDER-LINE OO 1F 105 M EMPLOYNOF 106 M ИМЯ
Макеты отчетов:
L 1 ЗАГОЛОВОК ПАРТИЯ НЕТ. ^ В ОШИБКА СТРАНИЦА ^L 2 ЗАГОЛОВОК EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫ EMP.НЕТ. ЧАСЫL 3 ERROR-LINE ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^ ^ .^L 4 ОБЛИГАЦИЯ СВЯЗЬ ЗАКАЗЫ EMP. НЕТ. ИМЯ ДАТА СВЯЗЬ СТРАНИЦА ^L 5 BONDORDER-LINE ^ ^ ^- ^- ^ . ^L 6 УДАЛЕНИЕ ЗАГОЛОВКИ ПРЕКРАЩЕНИЕ EMP. НЕТ. ДАТА ИМЯ СВЯЗЬ CR. ИТОГО.. ВАЛОВОЙ НАЛОГ FICA СТРАХОВАНИЕ RET СТРАНИЦА ^L 7 УДАЛЕНИЕ-СТРОКА ^ ^- ^- ^ ^ . ^ . ^ . ^ . ^ . ^ . ^L 8 ОШИБКА-ЗАГОЛОВОК ОШИБКИ... EMP. НЕТ. ДАТА ТИП СТРАНИЦА ^L 9 ERROR-LINE ^ ^- ^- ^ ^L 10 TITLE-LINE МЕСТО ПРОВЕРИТЬ ФОРМА В ПРИНТЕРL 12 1PAYLINE ^ ^/ ^/ ^ .^ ^/ ^/ ^L 13 2PAYLINE . ^ . ^ . ^ .^ . ^L 14 3PAYLINE ^ $****. ^ . ^ . ^
Источники
- ЯЗЫКИ ПРОГРАММИРОВАНИЯ: история и основы, Sammet 1969, стр. 316–324.
- Корпорация компьютерных наук (1960). ФАКТ Новый деловой язык (PDF) (Технический отчет). Honeywell. Проверено 19 января 2014 года.
Рекомендации
- ^ FACT Полностью автоматический метод компиляции (PDF). Электронная обработка данных Honeywell. 1960. ДСИ-27.
- ^ Клиппер, Р. Ф. (1 августа 1962 г.). "Факт". Компьютерный журнал. 5 (2): 112–119 (118 - Опыт использования FACT). Дои:10.1093 / comjnl / 5.2.112. ISSN 0010-4620.