System Laninga i Zierlera - Laning and Zierler system

System Laninga i Zierlera (czasami nazywany przez jego użytkowników „George”) był jednym z pierwszych działających kompilatorów algebraicznych , czyli systemem zdolnym do przyjmowania formuł matematycznych w notacji algebraicznej i tworzenia równoważnego kodu maszynowego (termin kompilator nie był jeszcze wynaleziony i system został nazwany „ programem interpretacyjnym ”). Został wdrożony w 1952 roku dla MIT WHIRLWIND przez J. Halcombe Laninga i Neala Zierlera. Poprzedza go UNIVAC A-2, IBM Speedcoding oraz szereg systemów, które zostały zaproponowane, ale nigdy nie zostały wdrożone.

Opis

System przyjmował formuły w mniej lub bardziej algebraicznej notacji. Respektował standardowe zasady pierwszeństwa operatorów , dopuszczał zagnieżdżone nawiasy i używał indeksów górnych do wskazywania wykładników . Był to jeden z pierwszych systemów programowania, który umożliwiał symboliczne nazwy zmiennych i automatyczne przydzielanie pamięci.

System zautomatyzował również następujące zadania: obliczenia zmiennoprzecinkowe , powiązanie z podprogramami dla podstawowych funkcji analizy (sinus itp.) i drukowania oraz tablic i indeksowania.

System akceptował dane wejściowe na taśmie dziurkowanej wyprodukowanej przez Friden Flexowriter . Zestaw znaków używany podczas instalacji Whirlwind zawierał cyfry „ wielkie ” (indeks górny) i łącznik, które były używane do wskazywania indeksów tablic, kodów funkcji i wykładników (liczby całkowite). Podobnie jak inne notacje programistyczne swoich czasów, system akceptował tylko jednoliterowe nazwy zmiennych, a mnożenie wskazywane było przez zestawienie argumentów. Wypukła kropka była dostępna, aby wyraźnie wskazać mnożenie (znak został utworzony przez wypełnienie dolnej połowy dwukropka!). System obejmował również obsługę rozwiązywania liniowych równań różniczkowych metodą Runge-Kutty .

System został opisany w 18-stronicowym podręczniku napisanym na maszynie dla osób zaznajomionych z matematyką, ale być może nie znających komputerów. Nie zawiera prawie nic, co mogłoby stanowić wprowadzenie do sprzętu komputerowego.

Przykładowy program

Poniższy przykład, wzięty od strony 11 Systemu Obsługi, ocenia za pomocą serii Taylor ekspansji. Implementacja nie jest strasznie wydajna, a system zawiera już w swojej bibliotece podprogramów, ale przykład służy do posmakowania składni systemu. Zauważ, że dzielenie w systemie jest obliczane po mnożeniu:

 1 x = 0,
   z = 1 - x2/2 + x4/2·3·4 - x6/2·3·4·5·6
     + x8/2·3·4·5·6·7·8 - x10/2·3·4·5·6·7·8·9·10,
   PRINT x, z.
   e = x -  1.05,
   CP 1,
   STOP

Aplikacje

Na system napisano niewiele aplikacji. Jedna z udokumentowanych aplikacji, autorstwa samych Laninga i Zierlera, dotyczyła problemu w lotnictwie. Problem wymagał do wyrażenia siedmiu układów równań różniczkowych i został przekazany do Whirlwind, ponieważ był zbyt duży, aby mógł go obsłużyć Analizator Różnicowy MIT . Autorzy, wykorzystując cechę Runge-Kutty swojego systemu programowania, stworzyli program składający się z 97 instrukcji w dwie i pół godziny. Program po raz pierwszy przebiegł pomyślnie.

Wpływ na FORTRAN

Niektóre źródła podają, że inspiracją dla FORTRAN był system Laninga i Zierlera . Sam John Backus przyznał, że przyczynił się do tego błędnego przekonania:

Wpływ systemu Laninga i Zierlera na rozwój FORTRAN-u to pytanie, które zostało z mojej strony zagmatwane przez wiele przekłamań. Przez wiele lat wierzyłem, że pomysł na użycie notacji algebraicznej w FORTRAN wpadliśmy na demonstrację systemu Laninga i Zierlera na MIT. (Backus)

Po zapoznaniu się z ówczesną dokumentacją Backus dowiedział się, że projekt FORTRAN był „w toku”, kiedy on i jego zespół mieli okazję zobaczyć pracę Laninga i Zierlera:

[W] przypadku, gdy po raz pierwszy usłyszeliśmy o ich pionierskiej pracy, rozważaliśmy już algebraiczne dane wejściowe znacznie bardziej wyrafinowane niż w przypadku systemu Laninga i Zierlera… [I]trudno się domyślić, jakie, jeśli w ogóle, nowe pomysły otrzymaliśmy, gdy zobaczyliśmy demonstracja ich systemu. (Backus, op. cit. )

Zobacz też

Uwagi

  1. ^ JW Backus, Historia FORTRAN I, II i III. Proceedings Pierwsza konferencja ACM SIGPLAN na temat historii języków programowania

Bibliografia

  • Backus, JW Historia FORTRANU I, II i III. Materiały Pierwsza konferencja ACM SIGPLAN na temat historii języków programowania (dostępna on-line ).
  • Laning, JH i N. Zierler. Program do tłumaczenia równań matematycznych dla Whirlwind I. Engineering Memorandum E-364, Instrumentation Laboratory, Massachusetts Institute of Technology. (Dostępny on-line ).
  • Sammet, Jean E., „Języki programowania: historia i podstawy” Prentice-Hall, 1969
  • „Wczesny rozwój języków programowania” w historii informatyki w XX wieku , Nowy Jork, Academic Press, 1980. ISBN  0-12-491650-3
Konkretny