Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 ) СТОП. (КОНЕЦ)

Образцы заметок

  1. Обратите внимание, что этот пример включает только исполняемые операторы программы, COMPILERраздел. Поля записи PRODUCT-NOи UNIT-PRICEбыли бы определены в DIRECTORYразделе, в котором ( как отмечалось ранее ) не использовался англоязычный синтаксис. [8]
  2. Ссылки на файлы обозначаются буквой в конце ПИСЬМА ФАЙЛА. Пример: FILE-A упоминается позже только через A и для простоты ссылки в следующем коде.
  3. Операции нумеруются в непрерывной последовательности от 0 до n и выполняются в этом порядке, если не достигнуто / не выполнено (выполнено) противоположное утверждение (JUMP и т. Д.).
  4. Операция с самым большим номером - это операция, которая останавливает программу.
  5. Более подробный обзор FLOW-MATIC доступен в руководстве под названием FLOW-MATIC PROGRAMMING SYSTEM [9]

Заметки [ править ]

  1. ^ Хоппер (1959) стр. 198.
  2. ^ Хоппер (1978) стр. 16.
  3. ^ a b c Sammet (1969) стр. 316
  4. ^ Саммет (1978) стр. 204.
  5. ^ Remington Rand Univac, подразделение Sperry Rand Corporation (1957). СИСТЕМА ПРОГРАММИРОВАНИЯ FLOW-MATIC стр. 30.
  6. ^ Сперри Рэнд (1957) стр. 7.
  7. ^ Саммет (1969) стр. 323.
  8. ^ Хоппер (1978) стр. 18.
  9. ^ 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 или новее.