System Laninga i Zierlera

Laninga i Zierlera (czasami nazywany przez użytkowników „George”) był pierwszym działającym kompilatorem algebraicznym , to znaczy systemem zdolnym do przyjmowania formuł matematycznych w notacji algebraicznej i tworzenia równoważnego kodu maszynowego (termin kompilator nie został jeszcze wynaleziony i system był określany jako „ program interpretacyjny ”). Został wdrożony w 1952 roku dla MIT WHIRLWIND przez J. Halcombe Laninga i Neala Zierlera. Poprzedzają go kompilatory niealgebraiczne, takie jak UNIVAC A-0.

Opis

System przyjmował formuły w notacji mniej lub bardziej algebraicznej. Przestrzegał standardowych zasad 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ązania z podprogramami dla podstawowych funkcji analizy (sinus itp.) i drukowania oraz tablic i indeksowania.

System akceptował wejście na taśmie dziurkowanej produkowanej przez Friden Flexowriter . Zestaw znaków używany podczas instalacji Whirlwind zawierał „ duże litery ” (indeks górny) i łącznik, które były używane do wskazywania indeksów tablicy, kodów funkcji i (całkowitych) wykładników. Podobnie jak inne notacje programistyczne swoich czasów, system akceptował tylko jednoliterowe nazwy zmiennych, a mnożenie było wskazywane przez zestawienie operandów. Dostępna była wypukła kropka, która wyraźnie wskazywała mnożenie (znak został utworzony przez spiłowanie 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 niezaznajomionych z komputerami. Nie zawiera prawie nic w rodzaju wprowadzenia do sprzętu komputerowego.

Przykładowy program

Poniższy przykład, zaczerpnięty ze strony 11 podręcznika systemu, ocenia dla przy użyciu w . Implementacja nie jest strasznie wydajna, a system już zawiera w swojej bibliotece podprogramów, ale przykład służy do nadania posmaku składni systemu. Zauważ, że dzielenie w systemie jest obliczane po mnożeniu:

 1  x  = 0,  z  = 1 -  x  2  /2 +  x  4  /2·3·4 -  x  6  /2·3·4·5·6 +  x  8  /2·3·4·5·6·7 ·8 -  x  10  /2 ·3 ·4 ·5 ·6 ·7 ·8 ·9 ·10, WYDRUKUJ  x  ,  z  .  e  =  x  - 1,05, PK 1, STOP 

Aplikacje

Dla systemu napisano kilka aplikacji. Jedna udokumentowana aplikacja, której autorami byli Laning i Zierler, dotyczyła problemu z aeronautyki. [ Potrzebne źródło ] Problem wymagał wyrażenia siedmiu układów równań różniczkowych i został przekazany firmie Whirlwind, ponieważ był zbyt duży, aby mógł go obsłużyć Analizator Różnicowy MIT . Autorzy, wykorzystując funkcję Runge-Kutta swojego systemu programowania, stworzyli program składający się z 97 instrukcji w ciągu dwóch i pół godziny. Program został pomyślnie uruchomiony za pierwszym razem.

Wpływ na FORTRAN

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

Wpływ systemu Laninga i Zierlera na rozwój FORTRAN-u jest kwestią zagmatwaną przez wiele przekłamań z mojej strony. Przez wiele lat wierzyłem, że pomysł na użycie notacji algebraicznej w FORTRANIE pojawił się po obejrzeniu demonstracji systemu Laninga i Zierlera na MIT. (Backus)

Po przejrzeniu dokumentacji z tamtych czasów Backus dowiedział się, że projekt FORTRAN był „w toku”, kiedy on i jego zespół mieli okazję zobaczyć pracę Laninga i Zierlera:

[W] e już rozważaliśmy wprowadzanie algebraiczne znacznie bardziej wyrafinowane niż system Laninga i Zierlera, kiedy po raz pierwszy usłyszeliśmy o ich pionierskiej pracy… [Trudno] wiedzieć, jakie nowe pomysły, jeśli w ogóle, otrzymaliśmy, widząc demonstracja ich systemu. (Backus)

Zobacz też

Dalsza lektura