"
0
C
F
G
H
K
L
N
P
S
T
W
Z
А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
Р
С
Т
У
Ф
Х
Ц
Ч
Ш
Э
Ю
Я
СНОБОЛ
Значение СНОБОЛ в математической энциклопедии:
- алгоритмический язык, предназначенный для программирования задач обработки символьной информации, т. е. представленной словами в нек-ром алфавите. В литературе по программированию такие слова наз. строками, или цепочками, а образующие их буквы - литерами. На основе начального варианта С., разработанного в нач. 1960-х гг., было создано несколько версий языка, из к-рых наиболее стабильной оказалась версия С.-4. Аналогично рефалу, С. имеет своей теоретич. предпосылкой нормальные алгорифмы А. А. Маркова, в к-рых основной вычислительной операцией является обнаружение в слове Авхождения заданного подслова Вс последующей заменой этого вхождения на другое слово С.
Общая структура программ на С. типична для алго-ритмич. языков. Программа имеет вид последовательности операторов (инструкций) присваивания, сопоставления с образцом, замещения, передачи управления, ввода, вывода и останова. В выражениях могут употребляться как примитивные операции, предикаты и функции, так и функции, определяемые программистом (в т. ч. и рекурсивные). Любая инструкция может быть помечена. Метка в С. может трактоваться как строковая переменная, значением к-рой является инструкция, помеченная этой меткой. Основными типами данных являются строки, целые и действительные числа, имена, образцы. Базисным типом является строка, все остальные данные имеют строковое представление, совпадающее с их способом записи в программе, Однородные данные могут объединяться в массивы и таблицы, произвольные данные объединяются в наборы заданной длины и с заданными именами для каждой позиции (поля) набора. Имена обозначают переменные, метки, формальные параметры и функции. Строки в С. могут быть любой длины. Переменные не имеют постоянно приписываемого им типа, однако операнды каждой операции или примитивной функции ожидают данных определенного типа, преобразуя аргументы к ожидаемому типу либо выдавая сообщение об ошибке.
Наиболее характерной операцией С. является сопоставление строки с образцом. Образец - это особое выражение С., создающее в нек-poй последовательности группу контрольных строки определенную дисциплину движения слева направо (сканирования) вдоль сопоставляемой строки, называемой субъектом. Сопоставление - это последовательность элементарных проверок. Элементарная проверка устанавливает, является ли очередная контрольная строка подстрокой остатка (справа от точки сканирования) субъекта. В зависимости от успеха или неуспеха элементарной проверки происходит либо выработка сообщения об успехе или неуспехе сопоставления в целом, либо переход к следующей контрольной строке образца и перенос точки сканирования. В результате успешного сопоставления в субъекте выделяется последовательность нек-рых подстрок. Эти подстроки могут быть присвоены указанным переменным либо замещены на другие подстроки.
Примитивным образцом является выражение, значение к-рого ость строка, а успехом сопоставления с ней является вхождение этой строки в субъект. Конкатенация АВ образцов Аи . создает образец, успех в сопоставлении с к-рым требует успеха в сопоставлении с А, а затем - успеха в сопоставлении остатка субъекта с образцом В. Альтернаця А|В образцов А и В создает образец, сопоставление с к-рым успешно при сопоставимости либо с А, либо с В. Если А - образец и X - переменная, то конструкция А, X означает образец, успешное сопоставление с к-рым сохраняет в качестве значения Xту контрольную строку, вхождение к-рой в субъект привело к успеху.
Инструкция сопоставления с образцом имеет вид VA, где V - переменная-субъект и А - образец. Условная передача управления изображается инструкцией VA: F(M1)S( М2). где M1 и М2 - метки перехода в случае неудачи и удачи сопоставления соответственно. Инструкция замещения имеет вид VA = Е, где Е- строковое выражение, значение к-рого при успешном сопоставлении замещает в Vвыделенную подстроку.
С. имеет развитую библиотеку примитивных функций, к-рые в сочетании с операциями конкатенации и альтернации позволяют создать емкие образцы и компактно записывать в виде инструкции замещения весьма сложные правила анализа и преобразования строк. Программы на С. обрабатываются программирующим процессором интерпретационного типа. Программа транслируется в промежуточную форму, к-рая исполняется с помощью интерпретатора. С. реализован для всех главных архитектур современных ЭВМ. Реализация этого языка содействовала разработке эффективных алгоритмов манипулирования в памяти ЭВМ строками переменной длины.
Лит.:[1] Farhеr D. J., Griswо1d R. Е., Polonsky I. P., лJ. Assoc. Comput. Mach.