Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

FLOW-MATIC

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.

Статус версії сторінки

На цій сторінці показано неперевірені зміни

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

FLOW-MATIC, спочатку відома якB-0 (Ділова мова версія 0), була першою англомовною мовоюсистеми обробки даних. Вона була розроблена дляUNIVAC IRemington 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

Список команд

[ред. |ред. код]

Список команд які описані в керівництві користувача.[7]:95

  • CLOSE-OUT Закриває працю із бобіною.
  • COMPARE Порівнює значення полів в двох записах. Після перевірки вимог виконує перехід за вказаними адресами.
  • EXECUTE Викликає виконання підпрограми
  • INPUT Задає як записи даних співвідносяться із бобіною
  • JUMP Безумовний перехід по логічному номеру команди
  • MOVE Переносить значення поля одного запису в поле іншого запису.
  • READ-ITEM Читає наступний запис із бобіни
  • REWIND Перемотує бобіну на початок
  • SET Міняє параметри переходу в команді за вказаним логічним адресом
  • STOP Зупиняє виконання програми
  • TEST Перевіряє значення полів запису із константою. Після перевірки вимог виконує перехід за вказаними адресами.
  • TRANSFER Переносить значення запису в інший запис, або його частину.
  • WRITE-ITEM Записує дані із поточного буферу запису на вихідний пристрій.

Примітки

[ред. |ред. код]
  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. Також процитовано у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.
  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. Flow-Matic: Programming system(PDF)(англ.). Sperry Rand Corporation. 1958.Архів(PDF) оригіналу за 20 лютого 2024. Процитовано 27 січня 2025.
Рівень
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки тавекторної
графіки
[суперечливо 1]
Синхронні
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
Академічні
Езотеричні
  1. абНемає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування


Мова програмуванняЦе незавершена стаття промови програмування.
Ви можетедопомогти проєкту,виправивши або дописавши її.
Отримано зhttps://uk.wikipedia.org/w/index.php?title=FLOW-MATIC&oldid=44713871
Категорії:
Прихована категорія:

[8]ページ先頭

©2009-2025 Movatter.jp