Interested Article - FLOW-MATIC

FLOW-MATIC — был первым основанным на английском языком обработки данных и изначально назывался B-0 ( Business Language version 0 — «язык (для) бизнеса версия 0»). Был разработан для компьютера UNIVAC I в компании Remington Rand под руководством Грейс Хоппер с 1955 по 1959 год. На базе FLOW-MATIC сформировался схожий по идее и целям язык программирования COBOL .

Разработка

Хоппер обнаружила, что при обработке данных клиенты испытывают дискомфорт от использования математической нотации :

Когда-то я была профессором математики. В то время я обнаружила, что есть студенты, которые не могут изучать математику. Затем мне поручили сделать так, чтобы предпринимателям было легко пользоваться нашими компьютерами. Оказалось, что вопрос не в том, смогут ли они изучать математику, а в том, захотят ли они. [ ... ] Многие из них говорили: "Выбросьте эти символы — я не знаю, что они означают, у меня нет времени их изучать". А тем, кто заявляет, что люди, обрабатывающие данные, должны использовать математическую нотацию, я посоветую для начала обучить математической записи вице-президента или полковника или адмирала. Уверяю вас, я уже пробовала.

В конце 1953 года она предложила заменить символы на (ключевые) слова из английского языка, но руководство Remington Rand сочло эту идею неосуществимой. Однако уже в начале 1955 года Грейс и её команда подготовили спецификацию к соответствующему языку программирования и реализовали прототип компилятора , который с 1958 года стал общедоступен, а 1959 - почти завершён .

Нововведения и влияние

FLOW-MATIC был первым языком программирования, который выражал операции с помощью словесных мнемоник . Это была также первая система, которая чётко отделяла данные от операций над ними. Язык определения данных системы FLOW-MATIC, в отличие от исполняемых инструкций, не был похож на английский ; скорее, структуры данных определялись путём заполнения предварительно напечатанных форм .

FLOW-MATIC и его прямой потомок определили COBOL , который включал в себя несколько характерных для FLOW-MATIC элементов:

  • Определение входных и выходных файлов и заранее напечатанных выходных данных, разделённых на входные файлы, выходные файлы и (HSP — High Speed Printer outputs «высокоскоростные выходы принтера»). INPUT <ИМЯ ФАЙЛА> <БУКВА ФАЙЛА> ; OUTPUT <ИМЯ ФАЙЛА> <БУКВА ФАЙЛА> ; HSP <БУКВА ФАЙЛА> .
  • Квалификация имён данных (разделы `IN` или `OF`).
  • Разделы IF END of DATA (AT END) для операции READ .
  • Символическая константа ZERO (первоначально ZZZ...ZZZ , где число Z указывает точность).
  • Разделение программы на части. Разделы FLOW-MATIC включали Computer (раздел среды), Directory (раздел данных) и Compiler (раздел процедур).

Пример программы

Пример программы на FLOW-MATIC:

 (0)  INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV
     FILE-D ; HSP D .
 (1)  COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO  ;
     IF EQUAL GO TO  ; OTHERWISE GO TO  .
 (2)  TRANSFER A TO D .
 (3)  WRITE-ITEM D .
 (4)  JUMP TO  .
 (5)  TRANSFER A TO C .
 (6)  MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
 (7)  WRITE-ITEM C .
 (8)  READ-ITEM A ; IF  GO TO  .
 (9)  JUMP TO  .
(10)  READ-ITEM B ; IF  GO TO  .
(11)  JUMP TO  .
(12)  SET  TO GO TO  .
(13)  JUMP TO  .
(14)  TEST PRODUCT-NO (B) AGAINST ; IF EQUAL GO TO  ;
     OTHERWISE GO TO  .
(15)  REWIND B .
(16)  CLOSE-OUT FILES C ; D .
(17)  STOP . (END)

Примечания к примеру

  1. Обратите внимание, что этот пример включает только исполняемые операторы программы, то есть раздел компилятора . Записи PRODUCT-NO и UNIT-PRICE были бы определены в разделе данных, который (как отмечалось ранее) не использует синтаксис, подобный английскому.
  2. Буква, обозначающая файл, находится после его имени. Пример: FILE-A , далее в программе, с целью упрощения. обозначается просто A.
  3. Операции нумеруются в непрерывной последовательности от 0 до N и выполняются в этом порядке, если не выполнено обратное (прыжок, ветвление и т. д.).
  4. Операция с наивысшим номером останавливает программу.
  5. Гораздо более подробный обзор FLOW-MATIC доступен в руководстве, озаглавленном «СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC» ( англ. FLOW-MATIC PROGRAMMING SYSTEM ) .

Примечания

  1. Hopper (1959) p. 198.
  2. Hopper (1978) p. 16.
  3. Sammet (1969) p. 316
  4. Sammet (1978) p. 204.
  5. Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM p. 30.
  6. Sperry Rand (1957) p. 7.
  7. Sammet (1969) p. 323.
  8. Hopper (1978) p. 18.
  9. Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM

Ссылки

  • Hopper, Grace (1978). Keynote Address, . ACM. pp. 16-20. ISBN 0-12-745040-8
  • Hopper, Grace (1959). «Automatic programming: Present status and future trends», Mechanisation of Thought Processes , National Physical Laboratory Symposium 10. Her Majesty’s Stationery Office. pp 155—200, cited in Knuth, Donald; Trabb Pardo, Luis (August 1976). (Technical report). Computer Science Department, School of Humanities and Sciences, Stanford University . Дата обращения: 19 марта 2016 .
  • Sammet, Jean (1969). Programming Languages: History and Fundamentals . Prentice-Hall. p. 316—324. ISBN 0-13-729988-5
  • Sammet, Jean (1978). «The Early History of COBOL», . ACM. pp. 199—243. ISBN 0-12-745040-8
  • Sperry Rand Corporation (1957)
  • Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM
Источник —

Same as FLOW-MATIC