Computer History  

Custom Search

Computer History
Tracing the History of the Computer - SNOBOL (StriNg Oriented symBOlic Language) Programming Language


SNOBOL (StriNg Oriented symBOlic Language) is a computer programming language developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky. (The name is a jocular reference to COBOL and ALGOL, but these languages have no other connection and no other notable similarities).

During the 1950s and 1960s there was a flourishing of interest in special-purpose computer languages. SNOBOL was one of a number of text-string-oriented languages, and one of the more successful; others included COMIT and TRAC.

SNOBOL was widely used in the 1970s and 1980s as a text manipulation language, but in recent years its popularity has faded as newer languages such as Awk and Perl have made string manipulation by means of regular expressions popular. It is now primarily a special interest language used mainly by enthusiasts, and new implementations are rare. However, SNOBOL's pattern matching algorithm is in many ways more powerful than regular expressions. The classic implementation was on the PDP-10. It has been used to study compilers, formal grammars, and artificial intelligence, especially machine translation and machine comprehension of natural languages. The original implementation was on an IBM 7090 at Bell Labs, Holmdel, N.J.. SNOBOL4 was specifically designed for portability; the first implementation was on an IBM 7094 but it was rapidly ported to many other platforms.

SNOBOL was originally called SEXI - String EXpression Interpreter.

The SNOBOL4 (final) variant of the language supports a number of built-in data types, such as integers and limited precision real numbers, strings, patterns, arrays, and tables, and also allows the programmer to define additional data types and new functions. SNOBOL4's programmer-defined data type facility was advanced at the time (it preceded, and resembles, Pascal's "records" and C's "structs").

SNOBOL4 stands apart from the mainstream programming languages of its time by having patterns as a first-class data type (i.e. a data type whose values can be manipulated in all ways permitted to any other data type in the programming language) and by providing operators for pattern concatenation and alternation. Strings generated during execution can be treated as programs and executed.


A SNOBOL pattern can be very simple or extremely complex. A simple pattern is just a text string (e.g. "ABCD"), but a complex pattern may be a large structure describing, for example, the complete grammar of a computer language.

SNOBOL provides the programmer with a rich assortment of features including some rather exotic ones. As a result it is possible to use SNOBOL as if it were an object-oriented language, a logical programming language, a functional language or a standard imperative language by changing the set of features used to write a program. It also concatenates strings that are simply placed next to each other in a statement. It keeps strings in a memory heap, and frees programmers from concerns about memory allocation and management for strings.

It is normally implemented as an interpreter because of the difficulty in implementing some of its very high-level features, but there is a compiler, the SPITBOL compiler, which provides nearly all the facilities that the interpreter provides.

The Icon programming language is a descendant of SNOBOL4.


History of Programming Languages

Programming Timeline

This article is derived from

Copyright Notice for Computer Nostalgia


  Privacy Policy 

 GNU License