This article is about the programming language. For the cleaning product, see SnoBol (cleaner).
SNOBOL
Paradigm
Imperative, procedural, unstructured
Designed by
David J. Farber, Ralph E. Griswold and Ivan P. Polonsky
Developer
David J. Farber, Ralph E. Griswold, Ivan P. Polonsky, and Bell Labs
First appeared
1962; 62 years ago (1962)
Stable release
SNOBOL4
/ 1967; 57 years ago (1967)
Website
https://www.regressive.org/snobol4/
Major implementations
SNOBOL, SPITBOL
Influenced by
COMIT
Influenced
AWK, SL5, Icon, bs, Lua[1]
SNOBOL ("StriNg Oriented and symBOlic Language") is a series of programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4. It was one of a number of text-string-oriented languages developed during the 1950s and 1960s; others included COMIT and TRAC.
SNOBOL4 stands apart from most programming languages of its era 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. SNOBOL4 patterns are a type of object and admit various manipulations, much like later object-oriented languages such as JavaScript whose patterns are known as regular expressions. In addition SNOBOL4 strings generated during execution can be treated as programs and either interpreted or compiled and executed (as in the eval function of other languages).
SNOBOL4 was quite widely taught in larger U.S. universities in the late 1960s and early 1970s and was widely used in the 1970s and 1980s as a text manipulation language in the humanities.
In the 1980s and 1990s, its use faded as newer languages such as AWK and Perl made string manipulation by means of regular expressions fashionable. SNOBOL4 patterns subsume BNF grammars, which are equivalent to context-free grammars and more powerful than regular expressions.[2]
The "regular expressions" in current versions of AWK and Perl are in fact extensions of regular expressions in the traditional sense, but regular expressions, unlike SNOBOL4 patterns, are not recursive, which gives a distinct computational advantage to SNOBOL4 patterns.[3] (Recursive expressions did appear in Perl 5.10, though, released in December 2007.[4][5])
The later SL5 (1977)[6] and Icon (1978) languages were designed by Griswold to combine the backtracking of SNOBOL4 pattern matching with more standard ALGOL-like structuring.
^Ierusalimschy, Roberto; de Figueiredo, Luiz Henrique; Celes, Waldemar (2007), "The evolution of Lua", Proceedings of the third ACM SIGPLAN conference on History of programming languages(PDF), p. 26, doi:10.1145/1238844.1238846, ISBN 9781595937667, S2CID 475143
^Gimpel, J. F. (February 1973). "A theory of discrete patterns and their implementation in SNOBOL4". Communications of the ACM. 16 (2): 91-100. doi:10.1145/361952.361960. S2CID 17059429.
^"Dr. Dobb's: Programs That Transform Their Own Source Code; or: the Snobol Foot Joke". Dobbscodetalk.com. Retrieved 2011-12-04.
SNOBOL ("StriNg Oriented and symBOlic Language") is a series of programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David...
programming languages with pattern matching constructs include COMIT (1957), SNOBOL (1962), Refal (1968) with tree-based pattern matching, Prolog (1972), St...
design of multiple influential programming languages, particularly PL/I, SNOBOL, ALTRAN, TMG and C++. His seminal work on software componentization and...
computation. His language credits include the string processing language SNOBOL, SL5, and Icon. He attended Stanford University, receiving a bachelor's...
COMIT was the first string processing language (compare SNOBOL, TRAC, and Perl), developed on the IBM 700/7000 series computers by Dr. Victor Yngve, University...
the Unix operating system, and the programming languages B, C, C++, S, SNOBOL, AWK, AMPL, and others. Ten Nobel Prizes and five Turing Awards have been...
languages. Other early implementations of pattern matching include the SNOBOL language, which did not use regular expressions, but instead its own pattern...
Component Pascal Active Oberon Zonnon Oberon-07 Lua (also under Scheme and SNOBOL) Ring (also under C, BASIC, Ruby, Python, C#) SUE Plus CPL BCPL B C (see...
implement an early virtual machine in SNOBOL4 (1967), which was written in the SNOBOL Implementation Language (SIL), an assembly language for a virtual machine...
(JVM). Another early example was SNOBOL4 (1967), which was written in the SNOBOL Implementation Language (SIL), an assembly language for a virtual machine...
In computer programming, string interpolation (or variable interpolation, variable substitution, or variable expansion) is the process of evaluating a...
mathematician D. H. Lehmer in the 1950s. The pioneer string-processing language SNOBOL (1962) may have been the first to provide a built-in general backtracking...
for use with BASIC or SBASIC SBASIC – Structured BASIC SIX – FORTRAN 76 SNOBOL – DTSS SNOBOL4 In 2000, a project to recreate the DTSS system on a simulator...
programming language itself as a first-class data type (as in Lisp, Prolog, SNOBOL, or Rebol) is also very useful; this is known as homoiconicity. Generic...
functional languages, and by text-based pattern matching languages like SNOBOL and AWK. Its most direct predecessor is DSSSL, which did for SGML what XSLT...