Snostorm - Snostorm
Snostorm (Snostorm3) je verze SNOBOL4 jazyk s strukturované programování přidány konstrukty. Kompenzuje téměř absenci strukturovaných programovacích konstrukcí v SNOBOL4 tím, že mimo jiné poskytuje příkazy IF, ELSEIF, ELSE, LOOP, CASE a PROCEDURE. To bylo původně navrženo a implementováno Fredem G. Swartzem jako preprocesor pro SPITBOL běží pod Michigan Terminal System (MTS) na Michiganská univerzita Výpočetní středisko v 70. letech.[1]
Přidány funkce
Přidané funkce zahrnují logické operátory, řídicí struktury včetně procedur, inicializační bloky, vylepšené komentáře a kontrolu seznamu.[1]
Gramatika zahrnuje tyto přidané konstrukce:[1]
- Logické operátory
- AND, OR a NOT logické operátory.
- Kontrolní struktury
- Příkazy IF, ELSEIF, ELSE a ENDIF.
- Příkazy LOOP, LOOP WHILE, LOOP UNTIL, LOOP FOR, EXITLOOP, NEXTLOOP, ENDLOOP a ENDLOOP REPEAT.
- Příkazy DOCASE, CASE, ELSECASE a ENDCASE.
- Příkazy PROCEDURE (PROC), EXITPROCEDURE (EDITPROC) a ENDPROCEDURE (ENDPROC).
- Inicializace
- VÝCHOZÍ a KONCOVÉ výpisy.
- Vylepšené komentáře
- Komentáře začínající hvězdičkou (*) ve sloupcích jiných než sloupec 1.
- Prázdné řádky považovány za komentáře.
- Ovládací prvek výpisu
- Vysunout, TITLE, SUBTITLE, SPACE, SEZNAM ZAPNUTO, SEZNAM VYPNUTO, SEZNAM PUSHON, SEZNAM PUSHOFF a SEZNAM POP POP.
MTS Snostorm navíc poskytoval možnosti pro pěkný tisk a pro ladění pomocí kompilátoru Spitbol.
Syntaxe Snostorm je do značné míry necitlivá na mezery a nové řádky, ale ne úplně tak kvůli své závislosti na SNOBOL4 pro provádění.
Příklad
Program SNOBOL4 uvedený v Programovací jazyk SNOBOL4 Griswold, Poage a Polonsky[2] následovaný stejným programem přepsaným v Snostormu.[1]
- Původní program SNOBOL4.
...ČÍST VÝSTUP = VSTUP :F(ZOBRAZIT) TEXT = VÝSTUPDALŠÍ TEXT CHAR = :F(ČÍST) POČET<CH> = POČET<CH> + 1 :(DALŠÍ) ZOBRAZIT VÝSTUP =SMYČKA PÍSMENA CHAR = :F(KONEC) VÝSTUP = NE(POČET<CH>) CH „Dochází“ POČET<CH> „ČASY“+ :(SMYČKA)KONEC
- Stejný program přepsaný v Snostormu.
... LOOP WHILE TEXT = INPUT OUTPUT = TEXT LOOP WHILE TEXT CHAR = COUNT= COUNT + 1 ENDLOOP ENDLOOP OUTPUT = LOOP WHILE LETTERS CHAR = IF NE (COUNT ) OUTPUT = CH 'OCCURS' POČET ENDIF ENDLOOPEND „TIMES“
Použití
Kromě jeho použití v osmi až patnácti lokalitách, které provozovaly Michigan Terminal System,[1] kompilátor Snostorm3 existoval v University College v Londýně (UCL) v letech 1982 až 1984 a pracoval při kompilaci Snostorm3 do SNOBOL4, který by pak mohl být spuštěn pomocí tlumočníka SNOBOL4 nebo pomocí kompilátoru SPITBOL k vytvoření spustitelného souboru.[Citace je zapotřebí ]
Reference
externí odkazy
- Popis Snostorma od Freda Swartze, 2010.
- „SNOSTORM se vrací“, zdrojové soubory pro moderní re-implementaci.
- Zdrojový a objektový kód MTS pro preprocesor Snostorm, komponenta 678 v MTS Distribution 6.0, duben 1988, k dispozici od Bitevníci a Digitální archiv Deep Blue od UM.