śnieżyca

Snostorm (Snostorm3) to wersja języka SNOBOL4 z dodanymi strukturalnymi konstrukcjami programistycznymi. Rekompensuje prawie brak strukturalnych konstrukcji programistycznych w SNOBOL4, dostarczając między innymi instrukcje IF, ELSEIF, ELSE, LOOP, CASE i PROCEDURE. Został pierwotnie zaprojektowany i wdrożony przez Freda G. Swartza jako preprocesor dla SPITBOL działający w ramach Michigan Terminal System (MTS) w University of Michigan Computing Center w latach 70.

Dodano funkcje

Dodane funkcje obejmują operatory logiczne, struktury kontrolne, w tym procedury, bloki inicjalizacji, ulepszone komentarze i kontrolę listy.

Gramatyka obejmuje te dodane konstrukcje:

Operatory logiczne
  • AND, OR i NOT operatory logiczne.
Struktury kontrolne
  • Instrukcje IF, ELSEIF, ELSE i ENDIF.
  • LOOP, LOOP WHILE, LOOP UNTIL, LOOP FOR, EXITLOOP, NEXTLOOP, ENDLOOP i ENDLOOP REPEAT.
  • Instrukcje DOCASE, CASE, ELSECASE i ENDCASE.
  • Instrukcje PROCEDURE (PROC), EXITPROCEDURE (EDITPROC) i ENDPROCEDURE (ENDPROC).
Inicjalizacja
  • instrukcji INITIAL i ENDINITIAL.
Ulepszone komentarze
  • Komentarze rozpoczynające się gwiazdką (*) w kolumnach innych niż kolumna 1.
  • Puste wiersze traktowane jako komentarze.
Kontrola wyświetlania instrukcji
  • EJECT, TITLE, SUBTITLE, SPACE, LIST ON, LIST OFF, LIST PUSHON, LIST PUSHOFF i LIST POP.

Ponadto MTS Snostorm zapewniał opcje ładnego drukowania i debugowania za pomocą kompilatora Spitbol.

Składnia Snostorm jest w dużej mierze niewrażliwa na spacje i znaki nowej linii, ale nie do końca, ze względu na jej zależność od SNOBOL4 do wykonania.

Przykład

Program SNOBOL4 podany w The SNOBOL4 Programming Language autorstwa Griswolda, Poage'a i Polonsky'ego, po którym następuje ten sam program przepisany w Snostorm.

  • Oryginalny program SNOBOL4.
       
                       
                   
                          
                  
         
                        ...  ODCZYTAJ  WYJŚCIE  =  WEJŚCIE  :  F  (  WYŚWIETL  )  TEKST  =  WYJŚCIE  NASTĘPNY  TEKST  ZNAK  =  :  F  (  ODCZYT  )  LICZBA  <  CH  >  =  LICZBA  <  CH  >  +  1  :(  NASTĘPNY  )  WYŚWIETL  WYJŚCIE  =  LITERY  PĘTLI  ZNAK  =  :  F  ( 
                     
                                     
 KONIEC  )  WYJŚCIE  =  NE  (  LICZBA  <  CH  >)  CH  ' WYSTĘPUJE '  LICZBA  <  CH  >  ' CZASY'  +  :(  LOOP  )  KONIEC 
  • Ten sam program, przepisany w Snostorm.
 ... PĘTLA WHILE TEKST = WEJŚCIE WYJŚCIE = TEKST PĘTLA WHILE TEKST ZNAK = LICZBA<CH> = LICZBA<CH> + 1 ENDLOOP ENDLOOP OUTPUT = LOOP WHILE LETTERS CHAR = JEŚLI NE(LICZBA<CH>) WYJŚCIE = CH ' WYSTĘPUJE ' COUNT<CH> ' TIMES' ENDIF ENDLOOP END 

Używać

Oprócz użycia w ośmiu do piętnastu lokalizacjach obsługujących system terminali Michigan, kompilator Snostorm3 istniał w University College London (UCL) od 1982 do 1984 roku i działał poprzez kompilację Snostorm3 do SNOBOL4, który można było następnie wykonać za pomocą interpretera SNOBOL4 lub za pomocą kompilatora SPITBOL do utworzenia pliku wykonywalnego. [ potrzebne źródło ]

Linki zewnętrzne