Русская Википедия:FLOW-MATIC

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Язык программирования

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

Разработка

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

Шаблон:Quote

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

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

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

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

  • Определение входных и выходных файлов и заранее напечатанных выходных данных, разделённых на входные файлы, выходные файлы и (HSP — High Speed Printer outputs «высокоскоростные выходы принтера»). Шаблон:Code; Шаблон:Code; Шаблон:Code[5].
  • Квалификация имён данных (разделы `IN` или `OF`).
  • Разделы Шаблон:Code для операции Шаблон:Code.
  • Символическая константа Шаблон:Code (первоначально Шаблон:Code, где число Шаблон:Code указывает точность).
  • Разделение программы на части. Разделы FLOW-MATIC включали Шаблон:Code (раздел среды), Шаблон:Code (раздел данных) и Шаблон:Code (раздел процедур).

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

Пример программы на FLOW-MATIC:[6][7]

 (Шаблон:Vanchor)  INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV
     FILE-D ; HSP D .
 (Шаблон:Vanchor)  COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO OPERATION 10 ;
     IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 .
 (Шаблон:Vanchor)  TRANSFER A TO D .
 (Шаблон:Vanchor)  WRITE-ITEM D .
 (Шаблон:Vanchor)  JUMP TO OPERATION 8 .
 (Шаблон:Vanchor)  TRANSFER A TO C .
 (Шаблон:Vanchor)  MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
 (Шаблон:Vanchor)  WRITE-ITEM C .
 (Шаблон:Vanchor)  READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 .
 (Шаблон:Vanchor)  JUMP TO OPERATION 1 .
(Шаблон:Vanchor)  READ-ITEM B ; IF END OF DATA GO TO OPERATION 12 .
(Шаблон:Vanchor)  JUMP TO OPERATION 1 .
(Шаблон:Vanchor)  SET OPERATION 9 TO GO TO OPERATION 2 .
(Шаблон:Vanchor)  JUMP TO OPERATION 2 .
(Шаблон:Vanchor)  TEST PRODUCT-NO (B) AGAINST ; IF EQUAL GO TO OPERATION 16 ;
     OTHERWISE GO TO OPERATION 15 .
(Шаблон:Vanchor)  REWIND B .
(Шаблон:Vanchor)  CLOSE-OUT FILES C ; D .
(Шаблон:Vanchor)  STOP . (END)

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

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

Примечания

Шаблон:Примечания

Ссылки

  1. Hopper (1959) p. 198.
  2. Hopper (1978) p. 16.
  3. 3,0 3,1 3,2 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