Парадигма | императив |
---|---|
Разработано | Ремингтон Рэнд , Грейс Хоппер |
Впервые появился | 1955 г. |
Платформа | UNIVAC I |
Под влиянием | |
АРИФ-МАТИЧЕСКИЙ | |
Под влиянием | |
МАТЕМАТИКА-MATIC , AIMACO , COBOL |
FLOW-MATIC , первоначально известный как B-0 ( Business Language version 0 ), был первым англоязычным языком обработки данных . Он был разработан для UNIVAC I в Remington Rand под руководством Грейс Хоппер с 1955 по 1959 год и помог сформировать разработку COBOL .
Развитие [ править ]
Хоппер обнаружил, что заказчики, занимающиеся обработкой бизнес-данных, не любят математические обозначения: [1]
Раньше я был профессором математики. В то время я обнаружил, что есть определенное количество студентов, которые не могут изучать математику. Тогда мне было поручено «облегчить бизнесменам использование наших компьютеров». Я обнаружил, что вопрос не в том, могут ли они изучать математику, а в том, будут ли они это делать. […] Они сказали: «Выбросьте эти символы - я не знаю, что они означают, у меня нет времени учить символы». Я предлагаю ответить тем, кто хотел бы, чтобы люди, занимающиеся обработкой данных, использовали математические символы, чтобы они сделали первую попытку научить этим символам вице-президентов, полковника или адмирала. Уверяю, что пробовала.
В конце 1953 года она предложила выражать проблемы обработки данных с помощью английских ключевых слов, но руководство Rand сочло эту идею невыполнимой. В начале 1955 года она и ее команда написали спецификацию для такого языка программирования и реализовали прототип. [2] Компилятор FLOW-MATIC стал общедоступным в начале 1958 года и был практически завершен в 1959 году. [3]
Инновации и влияние [ править ]
FLOW-MATIC был первым языком программирования, в котором операции выражались англоязычными операторами . [3] Это также была первая система, четко отделившая описание данных от операций с ними. Его язык определения данных , в отличие от исполняемых операторов, не был похож на английский; скорее, структуры данных были определены путем заполнения заранее напечатанных форм. [3]
ПОТОК-МАТИК и его прямой потомок AIMACO формы COBOL , [4] , которые включены некоторые из ее элементов:
- Заранее определите файлы ввода и вывода и распечатайте вывод, разделенный на файлы INPUT, файлы OUTPUT и вывод (HSP) High Speed Printer.
INPUT <FILE-NAME> <FILE-LETTER>
;OUTPUT <FILE-NAME> <FILE-LETTER>
;HSP <FILE-LETTER>
. [5] - Квалификация имен данных (
IN
илиOF
пункта). IF END OF DATA (AT END)
пункт о файловыхREAD
операциях.- Образная константа
ZERO
(первоначальноZZZ...ZZZ
, где числоZ
указывает точность). - Разделение программы на разделы, разделение разных частей программы. Разделы Flow-Matic включали
Computer
(Отдел окружающей среды),Directory
(Отдел данных) иCompiler
(Отдел процедур).
Пример программы [ править ]
Пример программы FLOW-MATIC: [6] [7]
( 0 ) ВВЕДИТЕ ФАЙЛ АВАРИИ-А ЦЕНА-ФАЙЛ-B; ВЫХОДНАЯ ЦЕНА-ИНВ ФАЙЛ-C БЕЗ ЦЕНЫ-ИНВ ФАЙЛ-D; HSP D. ( 1 ) СРАВНИТЕ НОМЕР ПРОДУКТА (A) С НОМЕР ПРОДУКТА (B); ЕСЛИ БОЛЬШЕ, ПЕРЕЙДИТЕ К ОПЕРАЦИИ 10 ; ЕСЛИ РАВНО ПЕРЕХОДИТЕ К ОПЕРАЦИИ 5 ; В противном случае ПЕРЕЙДИТЕ К ОПЕРАЦИИ 2 . ( 2 ) ПЕРЕДАЧА А В D. ( 3 ) НАПИСАТЬ ПУНКТ D. ( 4 ) ПЕРЕХОД К ЭКСПЛУАТАЦИИ 8 . ( 5 ) ПЕРЕДАЧА А В С. ( 6 ) ПЕРЕМЕСТИТЕ ЦЕНУ ЗА ЕДИНИЦУ (B) К ЦЕНЕ ЗА ЕДИНИЦУ (C). ( 7 ) ЗАПИСАТЬ ПУНКТ C. ( 8 ) ЗАЧИТАЙТЕ ПУНКТ A; ЕСЛИ КОНЕЦ ДАННЫХ, ПЕРЕЙДИТЕ К ОПЕРАЦИИ 14 . ( 9 ) ПЕРЕХОД К ЭКСПЛУАТАЦИИ 1 .( 10 ) ПРОЧИТАЙТЕ ПУНКТ B; ЕСЛИ КОНЕЦ ДАННЫХ, ПЕРЕЙДИТЕ К ОПЕРАЦИИ 12 .( 11 ) ПЕРЕХОД К ЭКСПЛУАТАЦИИ 1 .( 12 ) НАСТРОЙКА ОПЕРАЦИИ 9 ДЛЯ ПЕРЕХОДА К ОПЕРАЦИИ 2 .( 13 ) ПЕРЕХОД К ЭКСПЛУАТАЦИИ 2 .( 14 ) ИСПЫТАТЬ ПРОДУКТ - НОМЕР (B) ПРОТИВ; ЕСЛИ РАВНО ПЕРЕХОДИТЕ К ОПЕРАЦИИ 16 ; В противном случае ПЕРЕЙДИТЕ К ОПЕРАЦИИ 15 .( 15 ) НАЗАД B.( 16 ) ЗАКРЫТЬ ФАЙЛЫ C; D.( 17 ) СТОП. (КОНЕЦ)
Образцы заметок
- Обратите внимание, что этот пример включает только исполняемые операторы программы,
COMPILER
раздел. Поля записиPRODUCT-NO
иUNIT-PRICE
были бы определены вDIRECTORY
разделе, в котором ( как отмечалось ранее ) не использовался англоязычный синтаксис. [8] - Ссылки на файлы обозначаются буквой в конце ПИСЬМА ФАЙЛА. Пример: FILE-A упоминается позже только через A и для простоты ссылки в следующем коде.
- Операции нумеруются в непрерывной последовательности от 0 до n и выполняются в этом порядке, если не достигнуто / не выполнено (выполнено) противоположное утверждение (JUMP и т. Д.).
- Операция с самым большим номером - это операция, которая останавливает программу.
- Более подробный обзор FLOW-MATIC доступен в руководстве под названием FLOW-MATIC PROGRAMMING SYSTEM [9]
Заметки [ править ]
- ^ Хоппер (1959) стр. 198.
- ^ Хоппер (1978) стр. 16.
- ^ a b c Sammet (1969) стр. 316
- ^ Саммет (1978) стр. 204.
- ^ Remington Rand Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC стр. 30.
- ^ Сперри Рэнд (1957) стр. 7.
- ^ Саммет (1969) стр. 323.
- ^ Хоппер (1978) стр. 18.
- ^ Remington Rand Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC
Ссылки [ править ]
- Хоппер, Грейс (1978). Основной доклад, История Языки программирования I . ACM. С. 16–20. ISBN 0-12-745040-8
- Хоппер, Грейс (1959). «Автоматическое программирование: текущее состояние и будущие тенденции», Механизация мыслительных процессов , Симпозиум Национальной физической лаборатории 10. Канцелярия Ее Величества. pp 155–200, цитируется у Knuth, Donald; Трабб Пардо, Луис (август 1976 г.). Раннее развитие языков программирования (Технический отчет). Департамент компьютерных наук, Школа гуманитарных и естественных наук, Стэнфордский университет . Проверено 19 марта 2016 .
- Саммет, Жан (1969). Языки программирования: история и основы . Прентис-Холл. п. 316–324. ISBN 0-13-729988-5
- Саммет, Жан (1978). «Ранняя история COBOL», История Языки программирования I . ACM. С. 199–243. ISBN 0-12-745040-8
- Sperry Rand Corporation (1957), представляя новый язык для автоматического программирования: Univac Flow-Matic
- Remington Rand Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC FLOW-MATIC_Programming_System_1958.pdf
- Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.