WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

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

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

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

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

История

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

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

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

Пример

Найти среди вводимых строк палиндром, составленный из 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.
  • Теренс Пратт. Снобол 4 // Языки программирования: Разработка и реализация = Programming Language Design and Implementation (PLDI). — 1-st ed.. М.: Мир, 1979. — С. 483-516. — 573 с.
  • Ralph E. Griswold. XIII. SNOBOL Session // History of Programming Languages / Richard L. Wexelblat. — Academic Press, 1981. — С. 601-660. — 820 с. — (ACM monograph series). ISBN 9780127450407.

Руководства по языку

  • Ralph E. Griswold, etc. Snobol 4 Programming Language. — 2-nd ed.. — Prentice Hall, 1971. — (Automatic Computation). ISBN 9780138153731. (перевод Грисуолд Р., Поудж Дж., Полонски И. Язык программирования Снобол-4. — Мир, 1980. — (Математическое обеспечение ЭВМ).)
  • Ralph E. Griswold. Macroimplementation of Snobol 4. — W.H.Freeman & Co Ltd, 1972. ISBN 9780716704478.
  • Ralph E. Griswold. String and list processing in SNOBOL4; techniques and applications. — Prentice-Hall, 1975. — (Prentice-Hall series in automatic computation). ISBN 9780138530105.
  • James F. Gimpel. Algorithms in SNOBOL4. — Wiley, 1976. ISBN 9780471302131.
  • Susan Hockey. Snobol programming for the humanities. — Clarendon Press; Oxford University Press, 1985. ISBN 9780198246763.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии