Поиск в словарях
Искать во всех

Математическая энциклопедия - снобол

Снобол

снобол

алгоритмический язык, предназначенный для программирования задач обработки символьной информации, т. е. представленной словами в нек-ром алфавите. В литературе по программированию такие слова наз. строками, или цепочками, а образующие их буквы литерами. На основе начального варианта С., разработанного в нач. 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.

Математическая энциклопедия. — М.: Советская энциклопедия

И. М. Виноградов

1977—1985

Рейтинг статьи:
Комментарии:

Вопрос-ответ:

Ссылка для сайта или блога:
Ссылка для форума (bb-код):