Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

SNO(1)

НАЗВАНИЕ
sno - интерпретатор СНОБОЛа

СИНТАКСИС

	sno [ файлы ]

ОПИСАНИЕ
Команда sno - это компилятор и интерпретатор СНОБОЛа (с незначительными отличиями). На вход команде sno подается конкатенация названных файлов и стандартного ввода. Весь входной текст вплоть до оператора, содержащего метку end, считается программой и компилируется. Доступ к остальной части текста можно получить через псевдопеременную syspit.

Sno имеет следующие отличия от СНОБОЛа:

Отсутствует незакрепленный поиск. Тот же самый результат можно получить с помощью следующих конструкций:

       a ** b        незакрепленный поиск b.
       a *x* b = x c незакрепленное присваивание
Отсутствуют обратные ссылки.
       x = "abc"
       a *x* x       незакрепленный поиск abc.

Определение функций осуществляется в режиме компиляции при помощи (неуникальной) метки define. Выполнение вызова функции начинается с оператора, который следует за define. Функции не могут быть определены в режиме выполнения программы, имя define зарезервировано. Кроме формальных параметров, других автоматических переменных не предусмотрено. Примеры:

       define f( )
       define f(a, b, c)
Все метки за исключением define (даже end) должны помечать непустой оператор.

Все метки, функции и переменные должны иметь различные имена. В частности, непустой оператор, помеченный end'ом, не может просто называть метку.

Если начало - это метка программы, то стартует выполнение этой программы. В противном случае, выполнение начинается с первого выполняемого оператора; define не является выполняемым оператором.

Встроенные функции отсутствуют.

Скобки в арифметических выражениях необязательны. Поддерживается обычное соглашение о приоритетах. По этой причине арифметические операции / и * должны окаймляться пробелами.

Правая часть присваиваний должна быть непустой.

Для выделения литералов можно использовать как ', так и ".

Псевдопеременная sysppt недоступна.

СМ. ТАКЖЕ
awk(1).

SNOBOL, A String Manipulation Language, by D. J. Farber, R. E. Griswold, and I. P. Polonsky, JACM 11 (1964), pp. 21-30.
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT