WikiDer > ПОТОК-MATIC
Парадигма | императив |
---|---|
Разработано | Ремингтон Рэнд, Грейс Хоппер |
Впервые появился | 1955 |
Платформа | UNIVAC I |
Под влиянием | |
АРИФ-МАТИЧЕСКИЙ | |
Под влиянием | |
МАТЕМАТИЧЕСКИЙ, AIMACO, КОБОЛ |
ПОТОК-MATIC, первоначально известный как В-0 (Деловой язык версии 0), был первым англоязычным обработка данных язык. Он был разработан для UNIVAC I в Ремингтон Рэнд под Грейс Хоппер с 1955 по 1959 год, и помог сформировать развитие КОБОЛ.
Разработка
Хоппер обнаружил, что клиентам, занимающимся обработкой бизнес-данных, не нравится математическая запись:[1]
Раньше я был профессором математики. В то время я обнаружил, что есть определенное количество студентов, которые не могут изучать математику. Тогда мне поручили «облегчить бизнесменам использование наших компьютеров». Я обнаружил, что вопрос не в том, могут ли они изучать математику, а в том, будут ли они это делать. […] Они сказали: «Выкиньте эти символы - я не знаю, что они означают, у меня нет времени выучить символы». Я предлагаю ответ тем, кто хотел бы, чтобы люди, занимающиеся обработкой данных, использовали математические символы, которые они создают первыми. попытаться научить этим символам вице-президентов, полковника или адмирала. Уверяю, что пробовала.
В конце 1953 года она предложила выражать проблемы обработки данных с помощью английских ключевых слов, но руководство Rand сочло эту идею невыполнимой. В начале 1955 года она и ее команда написали спецификацию для такого языка программирования и реализовали прототип.[2] Компилятор FLOW-MATIC стал общедоступным в начале 1958 года и был практически завершен в 1959 году.[3]
Инновации и влияние
FLOW-MATIC был первым языком программирования, экспресс-операции с использованием операторов в английском стиле.[3] Это также была первая система, которая четко отделяла описание данных от операций над ними. Его язык определения данных, в отличие от своих исполняемых операторов, не был похож на английский; скорее, структуры данных были определены путем заполнения заранее напечатанных форм.[3]
FLOW-MATIC и его прямой потомок AIMACO сформированный КОБОЛ,[4] который включал в себя несколько своих элементов:
- Предварительное определение файлов ввода и вывода и вывод на печать, разделенных на файлы INPUT, файлы OUTPUT и (HSP) выходы для высокоскоростного принтера.
ВВОД <ИМЯ-ФАЙЛ> <БУКВА-ФАЙЛ>
;ВЫВОД <ИМЯ-ФАЙЛ> <БУКВА-ФАЙЛ>
;HSP <БУКВА-ФАЙЛ>
.[5] - Квалификация имен данных (
В
или жеИЗ
пункт). ЕСЛИ КОНЕЦ ДАННЫХ (В КОНЦЕ)
пункт в файлеЧИТАТЬ
операции.- Образная константа
НУЛЬ
(первоначальноZZZ ... ZZZ
, где количествоZ
указанная точность). - Разделение программы на разделы, разделение разных частей программы. Секции Flow-Matic включены
Компьютер
(Отдел окружающей среды),Каталог
(Отдел данных) иКомпилятор
(Отдел процедур).
Пример программы
Пример программы FLOW-MATIC:[6][7]
(0) ВВЕДИТЕ ФАЙЛ ИНВЕНТАРЯ-A ФАЙЛ ЦЕНЫ-B; ВЫВОД PRICED-INV FILE-C UNPRICED-INV FILE-D; HSP D. (1) СРАВНИТЕ НОМЕР ПРОДУКТА (A) С НОМЕР ПРОДУКТА (B); ЕСЛИ БОЛЬШЕ ИДТИ К ОПЕРАЦИЯ 10 ; ЕСЛИ РАВНЫЙ ИДТИ К ОПЕРАЦИЯ 5 ; ИНАЧЕ ИДТИ К ОПЕРАЦИЯ 2 . (2) ПЕРЕДАЧА А В D. (3) ЗАПИСАТЬ ПУНКТ D. (4) ПЕРЕЙТИ К ОПЕРАЦИЯ 8 . (5) ПЕРЕДАЧА А К С. (6) ПЕРЕМЕСТИТЕ ЦЕНУ ЗА ЕДИНИЦУ (B) К ЦЕНЕ ЗА ЕДИНИЦУ (C). (7) НАПИСАТЬ ПУНКТ C. (8) ПРОЧИТАЙТЕ ПУНКТ A; ЕСЛИ КОНЕЦ ДАННЫХ ИДТИ К ЭКСПЛУАТАЦИЯ 14 . (9) ПЕРЕЙТИ К ОПЕРАЦИЯ 1 .(10) ПРОЧИТАЙТЕ ПУНКТ B; ЕСЛИ КОНЕЦ ДАННЫХ ИДТИ К ОПЕРАЦИЯ 12 .(11) ПЕРЕЙТИ К ОПЕРАЦИЯ 1 .(12) НАБОР ОПЕРАЦИЯ 9 К ИДТИ К ОПЕРАЦИЯ 2 .(13) ПЕРЕЙТИ К ОПЕРАЦИЯ 2 .(14) ИСПЫТАТЬ ПРОДУКТ-НОМЕР (B) ПРОТИВ; ЕСЛИ РАВНЫЙ ИДТИ К ОПЕРАЦИЯ 16 ; ИНАЧЕ ИДТИ К ОПЕРАЦИЯ 15 .(15) НАЗАД B. (16) ЗАКРЫТЬ ФАЙЛЫ C; D. (17) ОСТАНОВКА . (КОНЕЦ)
Образцы заметок
- Обратите внимание, что этот образец включает только исполняемые операторы программы,
КОМПИЛЯТОР
раздел. Поля записиПРОДУКТ НЕ
иЦЕНА ЗА ЕДИНИЦУ
было бы определено вСПРАВОЧНИК
раздел, который (как отмечалось ранее) не использовал англоязычный синтаксис.[8] - Ссылки на файлы обозначаются буквой в конце ПИСЬМА ФАЙЛА. Пример: FILE-A упоминается позже только через A и для простоты ссылки в следующем коде.
- Операции пронумерованы в непрерывной последовательности от 0 до n и выполняются в этом порядке, если не достигается / не выполняется (выполняется) противоположное утверждение (JUMP и т. Д.).
- Операция с самым большим номером - это операция, которая останавливает программу.
- Более подробный обзор FLOW-MATIC доступен в руководстве под названием FLOW-MATIC PROGRAMMING SYSTEM.[9]
Примечания
- ^ Хоппер (1959) стр. 198.
- ^ Хоппер (1978) стр. 16.
- ^ а б c Саммет (1969) стр. 316
- ^ Саммет (1978) стр. 204.
- ^ Ремингтон Рэнд Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC стр. 30.
- ^ Сперри Рэнд (1957) стр. 7.
- ^ Саммет (1969) стр. 323.
- ^ Хоппер (1978) стр. 18.
- ^ Ремингтон Рэнд Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC
Рекомендации
- Хоппер, Грейс (1978). Основной доклад, История языков программирования I. ACM. С. 16–20. ISBN 0-12-745040-8
- Хоппер, Грейс (1959). «Автоматическое программирование: текущее состояние и будущие тенденции», Механизация мыслительных процессов, Симпозиум Национальной физической лаборатории 10. Канцелярия Ее Величества. pp 155–200, цитируется в Кнут, Дональд; Трабб Пардо, Луис (август 1976 г.). Раннее развитие языков программирования (Технический отчет). Департамент компьютерных наук, Школа гуманитарных и естественных наук, Стэнфордский университет. Получено 2016-03-19.
- Саммет, Жан (1969). Языки программирования: история и основы. Прентис-Холл. п. 316–324. ISBN 0-13-729988-5
- Саммет, Жан (1978). "Ранняя история КОБОЛА", История языков программирования I. ACM. С. 199–243. ISBN 0-12-745040-8
- Sperry Rand Corporation (1957) Представляем новый язык для автоматического программирования: Univac Flow-Matic
- Ремингтон Рэнд Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATICFLOW-MATIC_Programming_System_1958.pdf
- Статья основана на материалах, взятых из Бесплатный онлайн-словарь по вычислительной технике до 1 ноября 2008 г. и зарегистрированы в соответствии с условиями «перелицензирования» GFDL, версия 1.3 или новее.