Снобол

Снобол

Снобо́л — язык программирования высокого уровня, разработанный в 1962—1967 гг. и предназначенный преимущественно для обработки текстовых данных.

Основной целью языка Снобол являлось показать принцип (возможность его полноценного существования), что всё есть строка. Внешне язык выглядит в так называемом «старом стиле»: современные идеи процедур в нём сложно узнать, однако мощь его ничуть не уступает LISP по работе в среде «искусственного интеллекта».

Сопоставление с образцом на основе НФБ-грамматик. Полностью динамический язык, включая объявления, типы, распределение памяти, даже точки входа и выхода из процедуры. Реализация использует виртуальные макрокоманды обработки строк — простой перезаписью макрокоманд для любого существующего компьютера.

Язык, который является языком написания компиляторов, в котором основной принцип, что всё есть строка и имеющий такой «некрасивый» синтаксис не мог естественным путём не «переродиться» в совершенно другой, внешне даже не похожий: Icon. Первоначально он был одной лишь надстройкой над Снобол4, но вскоре стал самостоятельным языком программирования.

Содержание

История

Разработка началась в 1962 г. Ральфом Грисвольдом, Иваном Полонским и Дэвидом Фарбером, сотрудниками лаборатории AT&T Bell Labs. Их целью было создание языка обработки строк для работы с формулами и анализа графиков.

В 1950 г. Ингве (Yngve) из MIT разработал язык COMIT для обработки естественных языков на основе правил НФБ, однако группа из Bell Labs сочла COMIT слишком ограниченным для своих целей.

Изначально язык назывался SCL7 (Symbolic Computation Language 7), затем его название сменилось на SEXI (String Expression Interpreter), которое по понятным причинам было осуждено в 60-е гг., и, наконец, он стал называться SNOBOL (StriNg Oriented symBOlic Language) — искусственно созданный акроним, лишенный интуитивно понятного смысла. Было разработано несколько версий языка Снобол — SNOBOL, SNOBOL2, SNOBOL3 и SNOBOL4. Последний пользовался успехом в 70-е гг.

Пример

Найти среди вводимых строк палиндром, составленный из 0 и 1, максимальной нечетной длины:

START GRAMMAR = 0 | 1| 0 *GRAMMAR 0 | 1 *GRAMMAR 1
* Устанавливает в качестве образца НФБ-грамматику
LOOP NEWLINE - TRIMCINPUT) : F(END)
* Получает следующую строку без завершающих пробелов.
* В случае ошибки переход на END.
NEWLINE (POS(0) SPAN('0l") PROS(0)) : F(BAD)
* Проверяет строку на наличие только нулей и единиц.
* SPAN - строка из нулей и единиц.
* POS(0) - первая позиция.
* PROS(0) - последняя.
SN = SIZE(NEWLINE)
NEXT NEWLINE POS(0) GRAMMAR . PALINDROME POS(SN)
- :S(OK) F(NOTOK)
* Строка проверяется на соответствие грамматике через POS(SN)
* Если сравнение не прошло, переход в последнюю позицию.
* Если успешно, печатается ответ.
* Совпавшая часть присваивается PALINDROME
OK OUTPUT="MATCH: " PALINDROME :(LOOP)
NOTOK SN = SN - 1 :(NEXT)
BAD OUTPUT = "IMPROPER INPUT: " NEWLINE :(LOOP)
END

Ссылки

Литература

  • Роберт В Себеста 2.9. Два ранних динамических языка: APL и SNOBOL // Основные концепции языков программирования = Concepts of Programming Languages. — 5-е изд. — М.: «Вильямс», 2001. — С. 672. — ISBN 5-8459-0192-8

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Снобол" в других словарях:

  • СНОБОЛ — алгоритмический язык, предназначенный для программирования задач обработки символьной информации, т. е. представленной словами в нек ром алфавите. В литературе по программированию такие слова наз. строками, или цепочками, а образующие их буквы… …   Математическая энциклопедия

  • снобол — у, ч. Непроцедурна мова програмування, признач. для опису задач перетворення та обробки текстових даних …   Український тлумачний словник

  • снобол — (анг. SNOBOL, скр. ѕ tri nog Oriented symbolic Language) комп. програмски јазик од високо ниво, првенствено наменет за создавање на апликации за обработка на текст …   Macedonian dictionary

  • Хронология языков программирования — Списки языков программирования По категориям Хронологический Генеалогический Хронология языков программирования  упорядоченный в хронологическом порядке список языков программирования. Содержание …   Википедия

  • Icon (язык программирования) — У этого термина существуют и другие значения, см. Icon (значения). Icon Семантика: мультипарадигменный: императивный, логический …   Википедия

  • Генеалогический список языков программирования — Списки языков программирования По категориям Хронологический Генеалогический Приведён генеалогический список языков программирования. Языки классифицируются в соответствии с предшествующими языками, которые оказали сильное влияние на формирование …   Википедия

  • Snobol — Снобол язык программирования высокого уровня, разработанный в 1962 1967 гг. и предназначенный преимущественно для обработки текстовых данных. Основной целью языка Снобол являлось показать принцип (возможность его полноценного существования), что… …   Википедия

  • AWL (язык программирования) — AWL (Alternative Web Language) Класс языка: мультипарадигмальный: функциональный, процедурный, объектно ориентированный Тип исполнения: интерпретируемый Появился в: 2005 г. Типизация данных: динамическая …   Википедия

  • МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ — ЭВМ, программное обеспечение, совокупность программ и программных комплексов, посредством к рых происходит преобразование алгоритмов программы пользователя, записанных на алгоритмич. языках высокого уровня, в последовательность команд, понимаемых …   Математическая энциклопедия

  • ПРОГРАММИРОВАНИЯ ЯЗЫК — формальная знаковая система, служащая общению человека с ЭВМ. Решая вычислительные задачи или управляя исполнительными механизмами, ЭВМ с ее программным обеспечением демонстрирует сложные формы поведения, обычно относимые к умственной… …   Математическая энциклопедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»