HOME

TheInfoList



OR:

Snostorm (Snostorm3) is a version of the SNOBOL4 language with
structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of the structured control flow constructs of selection ( if/then/else) and repetition ( ...
constructs added. It compensates for the near absence of structured programming constructs in SNOBOL4 by providing IF, ELSEIF, ELSE, LOOP, CASE, and PROCEDURE statements, among others. It was originally designed and implemented by Fred G. Swartz as a preprocessor for
SPITBOL SPITBOL (Speedy Implementation of SNOBOL) is a compiled implementation of the SNOBOL4 programming language. Originally targeted for the IBM System/360 and System/370 family of computers, it has now been ported to most major microprocessors includi ...
running under the
Michigan Terminal System The Michigan Terminal System (MTS) is one of the first time-sharing computer operating systems.. Developed in 1967 at the University of Michigan for use on IBM S/360-67, S/370 and compatible mainframe computers, it was developed and used by a cons ...
(MTS) at the
University of Michigan , mottoeng = "Arts, Knowledge, Truth" , former_names = Catholepistemiad, or University of Michigania (1817–1821) , budget = $10.3 billion (2021) , endowment = $17 billion (2021)As o ...
Computing Center during the 1970s."SNOSTORM"
''MTS Volume 9: SNOBOL4 in MTS'', Computing Center, University of Michigan, June 1979, pages 99-120. Retrieved 1 September 2014.


Features added

Added features include logical operators, control structures including procedures, initialization blocks, enhanced comments, and listing control. The grammar includes these added constructs: ;Logical operators * AND, OR, and NOT logical operators. ;Control structures * IF, ELSEIF, ELSE, and ENDIF statements. * LOOP, LOOP WHILE, LOOP UNTIL, LOOP FOR, EXITLOOP, NEXTLOOP, ENDLOOP, and ENDLOOP REPEAT statements. * DOCASE, CASE, ELSECASE, and ENDCASE statements. * PROCEDURE (PROC), EXITPROCEDURE (EDITPROC), and ENDPROCEDURE (ENDPROC) statements. ;Initialization * INITIAL and ENDINITIAL statements. ;Enhanced comments * Comments starting with an asterisk (*) in columns other than column 1. * Blank lines treated as comments. ;Listing control * EJECT, TITLE, SUBTITLE, SPACE, LIST ON, LIST OFF, LIST PUSHON, LIST PUSHOFF, and LIST POP statements. In addition MTS Snostorm provided options for prettyprinting and for debugging with the Spitbol compiler. The syntax of Snostorm is largely insensitive to spaces and newlines, but not entirely so because of its dependence upon SNOBOL4 for execution.


Example

A SNOBOL4 program as given in ''The SNOBOL4 Programming Language'' by Griswold, Poage, and PolonskyGriswold, Ralph E., J. F. Poage, and I. P. Polonsky (1968). ''The SNOBOL4 Programming Language''. Englewood Cliffs, NJ: Prentice Hall, . followed by the same program rewritten in Snostorm. * The original SNOBOL4 program. ... READ OUTPUT = INPUT :F(DISPLAY) TEXT = OUTPUT NEXT TEXT CHAR = :F(READ) COUNT = COUNT + 1 :(NEXT) DISPLAY OUTPUT = LOOP LETTERS CHAR = :F(END) OUTPUT = NE(COUNT) CH ' OCCURS ' COUNT ' TIMES' + :(LOOP) END * The same program, rewritten in Snostorm. ... 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 ’ COUNT ’ TIMES’ ENDIF ENDLOOP END


Use

In addition to its use at the eight to fifteen sites that ran the Michigan Terminal System, a Snostorm3 compiler existed at
University College London , mottoeng = Let all come who by merit deserve the most reward , established = , type = Public research university , endowment = £143 million (2020) , budget = ...
(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.


References

{{reflist


External links


Fred Swartz's description of Snostorm
2010.
"The SNOSTORM Returneth"
source files for a modern re-implementation.
MTS source and object code for the Snostorm preprocessor
component 678 in MTS Distribution 6.0, April 1988, available fro
Bitsavers
and th
U-M's Deep Blue digital archive
Text-oriented programming languages SNOBOL programming language family University of Michigan