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 com-
     piled.  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-emp-
     ty statement.

     If `start' is a label in the program, program execution will
     start there.  If not, execution begins with the  first  exe-
     cutable statement.  `define' is not an executable statement.

     There are no builtin functions.

     Parentheses for arithmetic are not  needed.   Normal  prece-
     dence  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.

                              - 1 -

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

     The pseudo-variable `sysppt' is not available.

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


                              - 2 -