||This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. (August 2014)|
SnoStorm is a structured version of the SNOBOL language, and in particular SNOBOL4. The language was also known as SnoStorm3, and compensated for the near absence of structuring programming constructs in SNOBOL by providing IF, WHILE, REPEAT statements and others. It was originally designed and implemented as a preprocessor for SPITBOL by Fred G. Swartz running under the Michigan Terminal System (MTS) at the University of Michigan Computing Center during the 1970s.
The syntax of SnoStorm3 is largely insensitive to spaces and newlines, but not entirely so because of its dependence upon SNOBOL4 for execution.
Extra features include Procedures, If structures, Loop structures, Case structures and Initialisation structures
The grammar includes:
- AND, NOT and OR operators
- IF ELSEIF ELSE ENDIF statements
- LOOP WHILE, LOOP UNTIL and LOOP FOR statements
- EXITLOOP statement
- NEXTLOOP statement
- ENDLOOP statement
- DOCASE statement
- ELSECASE statement
- ENDCASE statement
- PROCEDURE statement
- EXITPROCEDURE statement
- ENDPROCEDURE statement
- INITIAL statement
In addition MTS Snostorm provided options for prettyprinting and for debugging with the Spitbol compiler.
A SnoStorm3 compiler existed at University College London (UCL) from 1982 to 1984 and worked by compiling SnoStorm3 into SNOBOL4, which could then be executed using the SNOBOL4 interpreter or by using a Spitbol compiler to create an executable.
- Fred Swartz's description of Snostorm, 2010.
- "The SNOSTORM Returneth", source files for a modern re-implementation.
- MTS Documentation on using the SNOSTORM preprocessor, June 1979.
- MTS source and object code for the Snostorm preprocessor, component 678 in MTS Distribution 6.0, April 1988, available from Bitsavers and the U-M's Deep Blue digital archive.