|
SNO(1)НАЗВАНИЕ СИНТАКСИС sno [ файлы ] ОПИСАНИЕ 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 недоступна. СМ. ТАКЖЕ SNOBOL, A String Manipulation Language, by D. J. Farber, R. E. Griswold, and I. P. Polonsky, JACM 11 (1964), pp. 21-30. |
|