FLOW-MATIC

FLOW-MATIC, спочатку відома як B-0 (Ділова мова версія 0), була першою англомовною мовою системи обробки даних. Вона була розроблена для UNIVAC I Remington Rand під керуванням Ґрейс Гоппер у період з 1955 по 1959 рік. Мова сильно вплинула на розвиток COBOL.

FLOW-MATIC
Парадигма Імперативне програмування і Процедурне програмування
Дата появи 1955
Творці Ґрейс Гоппер
Платформа UNIVAC I

Розвиток

Гоппер виявила, що клієнтам обробки бізнес-даних було незручно математичне позначення.[2] Наприкінці 1953 р. вона запропонувала, щоб проблеми обробки даних були виражені за допомогою англійських ключових слів, але керівництво Remington Rand вважало цю ідею неможливою. На початку 1955 р. вона і її команда написали специфікацію для такої мови програмування та реалізували прототип.[3]:16 Компонент FLOW-MATIC став відкрито доступним на початку 1958 р. І був практично завершений у 1959 р.[4]:316

Інновації та вплив

По-перше, FLOW-MATIC була першою мовою програмування, де використовувалася структура мови, подібна до речення англійською мовою.[4]:316

По-друге, FLOW-MATIC була першою системою, яка чітко відокремила опис даних від операцій на них. Мова опису даних, на відміну від її виконуваних тверджень не була англійською; Швидше за все, структури даних були визначені шляхом заповнення попередньо надрукованих форм.[4]:316

Flow-Matic мав ключовий вплив на дизайн мови COBOL, оскільки у практичному використанні на той час були тільки Flow-Matic і її безпосередній нащадок AIMACO.[5]:204 Кілька елементів Flow-Matic були включені в COBOL:

  • Визначення файлів заздалегідь та розділення на INPUT і OUTPUT.
  • Кваліфікація імен даних(IN або OF положення).
  • IF END OF DATA (AT END) положення про операції з файлами READ.
  • Образна константа ZERO (оригінально ZZZ...ZZZ, де кількість Zвказує на точність).
  • Розбиття програми на розділи, що розділяють різні частини програми. Flow-Matic мав наступні розділи (у дужках наведені COBOL-еквіваленти): Computer (Environment Division), Directory (Data Division), і Compiler (Procedure Division).

Приклад програми

Зразок програми FLOW-MATIC:[6]:7[4]:323

 (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 OPERATION 10 ;
     IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 .
 (2)  TRANSFER A TO D .
 (3)  WRITE-ITEM D .
 (4)  JUMP TO OPERATION 8 .
 (5)  TRANSFER A TO C .
 (6)  MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
 (7)  WRITE-ITEM C .
 (8)  READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 .
 (9)  JUMP TO OPERATION 1 .
(10)  READ-ITEM B ; IF END OF DATA GO TO OPERATION 12 .
(11)  JUMP TO OPERATION 1 .
(12)  SET OPERATION 9 TO GO TO OPERATION 2 .
(13)  JUMP TO OPERATION 2 .
(14)  TEST PRODUCT-NO (B) AGAINST ; IF EQUAL GO TO OPERATION 16 ;
     OTHERWISE GO TO OPERATION 15 .
(15)  REWIND B .
(16)  CLOSE-OUT FILES C ; D .
(17)  STOP . (END)

Зверніть увагу, що цей зразок містить тільки виконувані оператори програми, тобто секцію COMPILER. Поля записів PRODUCT-NO та UNIT-PRICE мають бути визначені у розділі DIRECTORY, який не використовував англійський синтаксис.[3]:18</ref>

Джерела

  1. Hopper, Grace (1959). Automatic programming: Present status and future trends. Mechanisation of Thought Processes (англ.) (National Physical Laboratory Symposium 10. Her Majesty's Stationery Office): 155–200. Також процитовано у Кнут, Пардо (1976).
  2. “Я колись була професором математики. У той час я знайшла там певну кількість студентів, які не могли навчитися математиці. Тоді переді мною поставили завдання зробити так, щоб бізнесмени могли легко використовувати наші комп'ютери. Я з'ясувала, що питання не у тому, чи можуть бізнесмени вивчити математику, а у тому, чи хочуть вони це робити. […] Вони говорили: «Викиньте ці символи — я не знаю, що вони означають, і я не маю часу, щоб це вивчати». Відповідь, запропонована мною тим, хто закликає спеціалістів з обробки даних вивчити математичні символи, була такою: навчіть спочатку тим символам віце-президентів, або полковника, або адмірала. Я запевняю вас — я це спробувалае.”[1]:198
  3. Hopper, Grace (1978). Keynote Address, History of Programming Languages I (англ.). ACM. с. 16–20. ISBN 0-12-745040-8.
  4. Sammet, Jean (1969). Programming Languages: History and Fundamentals (англ.). Prentice-Hall. с. 316–324. ISBN 0-13-729988-5.
  5. Sammet, Jean (1978). The Early History of COBOL. History of Programming Languages I (англ.). ACM. с. 199–243. ISBN 0-12-745040-8.
  6. Introducing a New Language for Automatic Programming: Univac Flow-Matic (англ.). Sperry Rand Corporation. 1957. Архів оригіналу за 2 липня 2013. Процитовано 11 вересня 2018.
  7. Knuth, Donald; Trabb Pardo, Luis (August 1976). The Early Development of Programming Languages (англ.). Computer Science Department, School of Humanities and Sciences, Stanford University. Процитовано 19 березня 2016.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.