SNO(VI)                      2/9/73                       SNO(VI)


     sno - Snobol interpreter


     sno [ file ]


     Sno is a Snobol III (with slight differences)  compiler  and

     interpreter.   Sno  obtains  input from the concatenation of

     file and the standard input.  All input through a  statement

     containing  the  label  `end'  is  considered program and is

     compiled.  The rest is available to `syspit'.

     Sno differs from Snobol III in the following ways.

     There are no unanchored searches.  To get the same effect:

             a ** b          unanchored search for b

             a *x* b = x c   unanchored assignment

     There is no back referencing.

             x = "abc"

             a *x* x         is an unanchored search for `abc'

     Function declaration is different.  The function declaration

     is  done  at  compile time by the use of the label `define'.

     Thus there is no ability to define functions at run time and

     the use of the name `define' is preempted.  There is also no

     provision for automatic variables other than the parameters.

     For example:

     define   f( )


     define   f(a,b,c)

     All labels except `define' (even `end')  must  have  a  non-

     empty statement.

     If `start' is a label in the program, program execution will

     start  there.   If  not,  execution  begins  with  the first

     executable  statement.   `define'  is  not   an   executable


     There are no builtin functions.

     Parentheses  for  arithmetic   are   not   needed.    Normal

     precedence   applies.    Because  of  this,  the  arithmetic

     operators `/' and `*' must be set off by space.

     The right side of assignments must be non-empty.

     Either ' or " may be used for literal quotes.

     The pseudo-variable `sysppt' is not available.


     Snobol III manual.  (JACM; Vol. 11 No. 1; Jan 1964; pp 21)