FLOW-MATIC — был первым основанным на английском языком обработки данных и изначально назывался B-0 (Business Language version 0 — «язык (для) бизнеса версия 0»). Был разработан для компьютера UNIVAC I в компании Remington Rand под руководством Грейс Хоппер с 1955 по 1959 год. На базе FLOW-MATIC сформировался схожий по идее и целям язык программирования COBOL.
Разработка Хоппер обнаружила, что при обработке данных клиенты испытывают дискомфорт от использования математической нотации:Hopper (1959) p. 198.
В конце 1953 года она предложила заменить символы на (ключевые) слова из английского языка, но руководство Remington Rand сочло эту идею неосуществимой. Однако уже в начале 1955 года Грейс и её команда подготовили спецификацию к соответствующему языку программирования и реализовали прототип компилятораHopper (1978) p. 16., который с 1958 года стал общедоступен, а 1959 — почти завершёнSammet (1969) p. 316.
Нововведения и влияние FLOW-MATIC был первым языком программирования, который выражал операции с помощью словесных мнемоник. Это была также первая система, которая чётко отделяла данные от операций над ними. Язык определения данных системы FLOW-MATIC, в отличие от исполняемых инструкций, не был похож на английский; скорее, структуры данных определялись путём заполнения предварительно напечатанных форм.
FLOW-MATIC и его прямой потомок AIMACO определили COBOLSammet (1978) p. 204., который включал в себя несколько характерных для FLOW-MATIC элементов:
Определение входных и выходных файлов и заранее напечатанных выходных данных, разделённых на входные файлы, выходные файлы и (HSP — High Speed Printer outputs «высокоскоростные выходы принтера»). ; ; Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM p. 30.. Квалификация имён данных (разделы `IN` или `OF`). Разделы для операции . Символическая константа (первоначально , где число указывает точность). Разделение программы на части. Разделы FLOW-MATIC включали (раздел среды), (раздел данных) и (раздел процедур).
Пример программы Пример программы на FLOW-MATIC:Sperry Rand (1957) p. 7.Sammet (1969) p. 323. () INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV FILE-D ; HSP D . () 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 . () TRANSFER A TO D . () WRITE-ITEM D . () JUMP TO OPERATION 8 . () TRANSFER A TO C . () MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) . () WRITE-ITEM C . () READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 . () JUMP TO OPERATION 1 . () READ-ITEM B ; IF END OF DATA GO TO OPERATION 12 . () JUMP TO OPERATION 1 . () SET OPERATION 9 TO GO TO OPERATION 2 . () JUMP TO OPERATION 2 . () TEST PRODUCT-NO (B) AGAINST ; IF EQUAL GO TO OPERATION 16 ; OTHERWISE GO TO OPERATION 15 . () REWIND B . () CLOSE-OUT FILES C ; D . () STOP . (END)
Примечания к примеру
Обратите внимание, что этот пример включает только исполняемые операторы программы, то есть раздел компилятора. Записи и были бы определены в разделе данных, который (как отмечалось ранее) не использует синтаксис, подобный английскому.Hopper (1978) p. 18. Буква, обозначающая файл, находится после его имени. Пример: , далее в программе, с целью упрощения. обозначается просто A. Операции нумеруются в непрерывной последовательности от 0 до N и выполняются в этом порядке, если не выполнено обратное (прыжок, ветвление и т. д.). Операция с наивысшим номером останавливает программу. Гораздо более подробный обзор FLOW-MATIC доступен в руководстве, озаглавленном «СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC» ()Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEM.
Примечания
Ссылки Hopper, Grace (1978). Keynote Address, History of Programming Languages I. ACM. pp. 16-20. 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 Sammet, Jean (1969). Programming Languages: History and Fundamentals. Prentice-Hall. p. 316—324. Sammet, Jean (1978). «The Early History of COBOL», History of Programming Languages I. ACM. pp. 199—243. Sperry Rand Corporation (1957) Introducing a New Language for Automatic Programming: Univac Flow-Matic Remington Rand Univac a Division of Sperry Rand Corporation (1957). FLOW-MATIC PROGRAMMING SYSTEMFLOW-MATIC_Programming_System_1958.pdf
Категория:Процедурные языки программирования Категория:Кобол