SNOBOL (StriNg Oriented symBOlic Language) ist eine der ersten Programmiersprachen, die vollständig auf die Verarbeitung von Texten ausgelegt war. Entwickelt wurde sie zwischen 1962 und 1967 an den Bell Laboratories von David J. Farber, Ralph E. Griswold und Ivan P. Polonsky – mit SNOBOL4 (1967) als bekanntester und portabler Version.

Idee und Pattern Matching

Anders als bei numerisch orientierten Sprachen steht in SNOBOL das Pattern Matching im Mittelpunkt: Ein Muster beschreibt, wie ein Textausschnitt aussehen muss, und wird gegen eine Zeichenkette abgeglichen. Diese Muster können beliebig komplex zusammengesetzt werden.

* Kommentare beginnen mit * in Spalte 1
          LINE = "abc123"
          LINE SPAN(&LCASE) . LETTERS
          OUTPUT = LETTERS

Die wichtigsten Musterfunktionen sind SPAN (alle Zeichen einer Menge fressen), BREAK (bis zu einem Zeichen der Menge), ANY (genau ein Zeichen aus der Menge) und BAL (balancierte Klammerausdrücke). Mit ARBNO lassen sich Wiederholungen ausdrücken.

Statement-Aufbau und Goto

Jede SNOBOL4-Anweisung folgt dem Schema LABEL SUBJECT PATTERN = REPLACEMENT :GOTO. Das Besondere ist der Goto-Teil: :S(erfolg) springt bei Erfolg, :F(fehler) bei Misserfolg einer Operation – eine frühe Form der bedingten Ablaufsteuerung.

          OUTPUT = "Bitte Namen eingeben:"
          INPUT = NAME
          NAME "Maier" :S(GEFUNDEN)
          OUTPUT = "Nicht gefunden" :(ENDE)
GEFUNDEN  OUTPUT = "Hallo " NAME
ENDE

Mit DEFINE() definiert man eigene Funktionen, mit TABLE() assoziative Arrays. Der Operator $ erlaubt die indirekte Referenz auf Variablen.

Bedeutung und Nachfolger

SNOBOL4 wurde ab den 1970er-Jahren von Ralph Griswold an der University of Arizona weitergepflegt; freie Implementierungen wie Spitbol und CSNOBOL4 halten die Sprache bis heute am Leben. Als moderner, strukturierter Nachfolger entstand aus derselben Entwicklungslinie Icon – und daraus später Unicon.