Снобол - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если бы у вас было все, где бы вы это держали? Законы Мерфи (еще...)

Снобол

Cтраница 1


Снобол относится к числу тех языков-памятников ( кстати, действующих памятников), которые оказали ( и оказывают) сильное влияние на развитие программирования вообще. Ортогональный во многих отношениях к другим языкам, Снобол обычно рекомендуется для изучения во вводных курсах программирования. Он предназначен для решения задач нечисленного анализа: преобразования формул, аналитических выкладок, обработки графов и текстов, конструирования компиляторов и др. Благодаря Сноболу существенно расширилась сфера применения ЭВМ.  [1]

Снобол 4 - последний и наиболее широко реализованный язык из семейства языков для обработки цепочек литер, разработанных в 60 - х годах в лабораториях Bell Telephone. Основной областью применения этого языка являются задачи, в которых требуется сложная обработка большого объема данных, имеющих вид цепочек литер: например, обработка текстов на естественном языке. Однако язык содержит много возможностей для работы и с другими типами данных, поэтому он нашел широкое применение во многих областях. Грисволд [1972] описал первоначальную реализацию языка Снобол 4, на которую эта глава в какой-то мере опирается.  [2]

Снобол 4 имеет простые, но гибкие средства, позволяющие программисту определять и использовать структуры данных новых типов. В общих словах, определение типа данных описывает класс неоднородных линейных массивов фиксированного размера, обращение к элементам которых осуществляется с помощью цепочек литер в качестве индексов. В определении самого типа данных указывается лишь имя типа, длина массивов этого типа и индексы элементов в каждом массиве.  [3]

Сноболе 4 является создание ска нера для сопоставляемой строки, называемого курсором.  [4]

Поскольку Снобол 4 создавался преимущественно для обработки цепочек, в языке имеется обширный набор примитивов для работы с цепочками, включая основные операции создания образцовой сопоставления с образцом. Язык также содержит много операций для создания и работы со структурами данных, описанными в предыдущем разделе. Меньшее значение имеют примитивы арифметических операций, операций отношения, присваиваний и ввода-вывода.  [5]

Подпрограммы Снобола 4 имеют ряд новых аспектов. Опре-деление подпрограммы является целиком динамической опера цией. Во время трансляции главная программа и ее подпрограммы представляют собой просто длинный список инструкций без всяких синтаксических отличий между элементами различных подпрограмм. В начале выполнения не определено ни одной подпрограммы, за исключением системных примитивов.  [6]

Своеобразие Снобола порождает при реализации ряд интересных проблем, которые не возникают в компиляторах для большинства других языков.  [7]

8 Список ( 101, 102, 103, 104, представленный как связанный список. [8]

Подходы Снобола 4 и ПЛ / I базируются на одном и том же идейном фундаменте: сложные структуры данных конструируются из узлов, представляющих собой неоднородные линейные массивы фиксированного размера. Узлы связаны вместе указателями, хранящимися в одном массиве и указывающими на другие. Неоднородные массивы, являющиеся узлами, имеют структуру, идентичную описанной в разд.  [9]

В Сноболе 4 применяется несколько иная техника. Цепочка литер - это основная структура данных в Сноболе 4, но программы в форме цепочек литер непосредственно не выполняются. Прежде их нужно странслировать в выполняемую форму с помощью примитивной операции CODE. CODE использует в качестве операнда цепочку литер, представляющую корректную программу на Сноболе 4 ( инструкции должны разделяться литерами), а в качестве результата выдает структуру данных, имеющую тип выполняемого кода.  [10]

В Сноболе 4 мы находим обширный и гибкий набор типов структур данных. Все элементы данных включают дескриптор, существующий во время выполнения.  [11]

Главным образом Снобол используется для обработки текстов на естественном языке и применяется в экспертных системах. Известны некоторые версии языка, реализованные для персональных компьютеров, но применение языка ограничено сферой искусственного интеллекта.  [12]

В языке Снобол 4 включение прерываний частично достигается с помощью специальных ключевых слов - переменных, которым следует присвоить ненулевое значение, чтобы разрешить различные типы прерываний, используемых для трассировки. Остальные условия прерываний, такие, как условие конца файла, проверяются постоянно.  [13]

Лисп, Снобол 4 и АПЛ - это языки, которые часто реализуются с использованием программного интерпретатора. При такой реализации языка команды используемой вычислительной машины не являются выходом транслятора. Вместо этого транслятор выдает некоторую промежуточную форму программы, более легкую для выполнения, чем исходная программа, но отличную от машинного кода. Процедура интерпретации, необходимая для выполнения этой транслированной программы, должна быть реализована программно, поскольку аппаратный интерпретатор непосредственно применить нельзя. Использование программного интерпретатора обычно приводит к относительно медленному выполнению программы. Кроме того, программно-интерпретируемые языки в большинстве случаев требуют значительного программного моделирования элементарных операций, управления памятью и других средств языка. Трансляторы для интерпретируемых языков, как правило, довольно просты, основная сложность процесса реализации смещается в моделирующие программы.  [14]

Стандартная реализация Снобола 4 описана в книге Грис-волда [1972], в которой содержится превосходное обсуждение многих. В более поздних работах Джимпела [1973] и Теннента [1973] дается формальное определение большей части семантики языка.  [15]



Страницы:      1    2    3    4