FLOW-MATIC
FLOW-MATIC | |
---|---|
Парадигма | імперативне програмування ![]() ![]() |
Дата появи | 1955 ![]() |
Творці | Ґрейс Гоппер ![]() |
Платформа | UNIVAC I ![]() |
FLOW-MATIC, спочатку відома як B-0 (Ділова мова версія 0), була першою англомовною мовою системи обробки даних. Вона була розроблена для UNIVAC I Remington Rand під керуванням Ґрейс Гоппер у період з 1955 по 1959 рік. Мова сильно вплинула на розвиток COBOL.
Гоппер виявила, що клієнтам обробки бізнес-даних було незручно математичне позначення.[2] Наприкінці 1953 р. вона запропонувала, щоб проблеми обробки даних були виражені за допомогою англійських ключових слів, але керівництво Remington Rand вважало цю ідею неможливою. На початку 1955 р. вона і її команда написали специфікацію для такої мови програмування та реалізували прототип.[3]:16 Компонент FLOW-MATIC став відкрито доступним на початку 1958 р. І був практично завершений у 1959 р.[4]:316
По-перше, FLOW-MATIC була першою мовою програмування, де використовувалася структура мови[en], подібна до речення англійською мовою.[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
- ↑ 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. Також процитовано у 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.
- ↑ “Я колись була професором математики. У той час я знайшла там певну кількість студентів, які не могли навчитися математиці. Тоді переді мною поставили завдання зробити так, щоб бізнесмени могли легко використовувати наші комп'ютери. Я з'ясувала, що питання не у тому, чи можуть бізнесмени вивчити математику, а у тому, чи хочуть вони це робити. […] Вони говорили: «Викиньте ці символи — я не знаю, що вони означають, і я не маю часу, щоб це вивчати». Відповідь, запропонована мною тим, хто закликає спеціалістів з обробки даних вивчити математичні символи, була такою: навчіть спочатку тим символам віце-президентів, або полковника, або адмірала. Я запевняю вас — я це спробувалае.”[1]:198
- ↑ а б Hopper, Grace (1978). Keynote Address, History of Programming Languages I (англ.). ACM. с. 16–20. ISBN 0-12-745040-8.
- ↑ а б в г Sammet, Jean (1969). Programming Languages: History and Fundamentals (англ.). Prentice-Hall. с. 316–324. ISBN 0-13-729988-5.
- ↑ Sammet, Jean (1978). The Early History of COBOL. History of Programming Languages I (англ.). ACM. с. 199–243. ISBN 0-12-745040-8.
- ↑ Introducing a New Language for Automatic Programming: Univac Flow-Matic (англ.). Sperry Rand Corporation. 1957. Архів оригіналу за 2 липня 2013. Процитовано 11 вересня 2018.
![]() |
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |