FLOW-MATIC - FLOW-MATIC

PRZEPŁYW-MATYCZNY
Paradygmat tryb rozkazujący
Zaprojektowany przez Remington Rand , Grace Hopper
Po raz pierwszy pojawiły się 1955 ( 1955 )
Platforma UNIVAC I
Wpływem
ART-MATYCZNA
Pod wpływem
MATEMATYKA-MATIC , AIMACO , COBOL

FLOW-MATIC , pierwotnie znany jako B-0 ( Business Language version 0 ), był pierwszym podobnym do angielskiego językiem przetwarzania danych . Został opracowany dla UNIVAC I w Remington Rand pod kierownictwem Grace Hopper w latach 1955-1959 i pomógł ukształtować rozwój COBOL .

Rozwój

Hopper stwierdził, że klienci przetwarzający dane biznesowe czują się niekomfortowo z zapisem matematycznym:

Byłem profesorem matematyki. W tym czasie odkryłem, że pewna liczba uczniów nie mogła nauczyć się matematyki. Następnie powierzono mi zadanie ułatwienia przedsiębiorcom korzystania z naszych komputerów. Stwierdziłem, że nie chodziło o to, czy mogliby uczyć się matematyki, czy nie, ale o to, czy się nauczą. […] Mówili: „Wyrzuć te symbole – nie wiem, co oznaczają, nie mam czasu na naukę symboli”. Tym, którzy chcieliby, aby ludzie przetwarzający dane używali symboli matematycznych, proponuję odpowiedź, że to oni podejmują pierwszą próbę nauczenia tych symboli wiceprezydentów, pułkownika lub admirała. Zapewniam, że próbowałem.¨

Pod koniec 1953 roku zaproponowała, aby problemy z przetwarzaniem danych były wyrażane za pomocą angielskich słów kluczowych, ale kierownictwo Rand uznało ten pomysł za niewykonalny. Na początku 1955 roku ona i jej zespół napisali specyfikację takiego języka programowania i zaimplementowali prototyp. Kompilator FLOW-MATIC stał się publicznie dostępny na początku 1958 roku i był zasadniczo gotowy w 1959 roku.

Innowacje i wpływy

FLOW-MATIC był pierwszym językiem programowania, który wyrażał operacje za pomocą instrukcji podobnych do języka angielskiego . Był to również pierwszy system, który wyraźnie oddzielił opis danych od operacji na nich. Jego język definicji danych , w przeciwieństwie do swoich wykonywalnych sprawozdania, nie było angielsko-podobne; struktury danych były raczej definiowane poprzez wypełnianie wstępnie wydrukowanych formularzy.

FLOW-MATIC i jego bezpośredni potomek AIMACO w kształcie COBOL , który zawierał kilka swoich elementów:

  • Definiowanie plików wejściowych i wyjściowych oraz wydruków z wyprzedzeniem, z podziałem na pliki wejściowe, pliki wyjściowe i wydruki (HSP) drukarki o dużej szybkości. INPUT <FILE-NAME> <FILE-LETTER>; OUTPUT <FILE-NAME> <FILE-LETTER>; HSP <FILE-LETTER>.
  • Kwalifikacja nazw danych ( INlub OFklauzula).
  • IF END OF DATA (AT END)klauzula dotycząca READoperacji na plikach .
  • Stała graficzna ZERO(pierwotnie ZZZ...ZZZ, gdzie liczba Zs wskazywała precyzję).
  • Podział programu na sekcje, oddzielenie różnych części programu. Uwzględniono sekcje Flow-Matic Computer(Pion Środowiska), Directory(Pion Danych) i Compiler(Pion Procedury).

Przykładowy program

Przykładowy program FLOW-MATIC:

 (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)

Przykładowe notatki

  1. Zauważ, że ten przykład zawiera tylko instrukcje wykonywalne programu, COMPILERsekcję. Pola rekordów PRODUCT-NOi UNIT-PRICEzostałyby zdefiniowane w DIRECTORYsekcji, która ( jak wcześniej zauważono ) nie używała składni podobnej do angielskiego.
  2. Pliki są oznaczone literą na końcu FILE-LETTER. Przykład: FILE-A jest przywoływany później tylko przez A i ma na celu ułatwienie odniesienia w poniższym kodzie.
  3. Operacje są numerowane w nieprzerwanej sekwencji od 0..n i są wykonywane w tej kolejności, chyba że zostanie osiągnięte/wykonane (wykonane) oświadczenie przeciwne (JUMP, itp.).
  4. Operacja o najwyższym numerze to ta, która zatrzymuje program.
  5. O wiele bardziej szczegółowy przegląd FLOW-MATIC jest dostępny w podręczniku zatytułowanym SYSTEM PROGRAMOWANIA FLOW-MATIC

Uwagi

Bibliografia

  • Hopper, Grace (1978). Keynote Address, Historia języków programowania I . ACM. s. 16–20. ISBN  0-12-745040-8
  • Hopper, Grace (1959). „Programowanie automatyczne: stan obecny i przyszłe trendy”, Mechanizacja procesów myślowych , Sympozjum Ogólnopolskiego Laboratorium Fizycznego 10. Biuro Papeterii Jej Królewskiej Mości. s. 155–200, cytowany w Knuth, Donald; Trabb Pardo, Luis (sierpień 1976). Wczesny rozwój języków programowania (raport techniczny). Wydział Informatyki, Szkoła Humanistyczno-Przyrodnicza Uniwersytetu Stanforda . Źródło 2016-03-19 .
  • Sammet, Jean (1969). Języki programowania: historia i podstawy . Prentice-Hall. P. 316-324. ISBN  0-13-729988-5
  • Sammet, Jean (1978). „Wczesna historia języka COBOL”, Historia języków programowania I . ACM. s. 199–243. ISBN  0-12-745040-8
  • Sperry Rand Corporation (1957) przedstawia nowy język programowania automatycznego: Univac Flow-Matic
  • Remington Rand Univac, oddział Sperry Rand Corporation (1957). SYSTEM PROGRAMOWANIA FLOW-MATIC FLOW-MATIC_Programming_System_1958.pdf
  • Ten artykuł jest oparty na materiale zaczerpniętym z bezpłatnego słownika komputerowego on-line sprzed 1 listopada 2008 r. i włączonym na warunkach „ponownego licencjonowania” GFDL w wersji 1.3 lub nowszej.