Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
D - Database or Text-processing
SNOBOL is a very powerful but eccentric
programming language primarily oriented
towards string data handling. Developed
as a research project at Bell Labs 1960-1962,
it gained a small but loyal following and
has enjoyed modest popularity ever since.
There were various versions of SNOBOL, but
the main one was and is SNOBOL4.
While SNOBOL offers the usualy arithmetic
and variable assignments of conventional
essence is string pattern
matching. The language syntax supports
extremely powerful string recognition
and manipulation constructs that allow
many types of data manipulation to be
expressed in SNOBOL very concisely.
Control flow in SNOBOL is mostly done on
the basis of string matches or lack
thereof, but modularity in the form of
subroutines is also part of the language.
Data types offered in the language include
strings, reals, integers, and homogeneous
SNOBOL4 is wonderfully documented in the
1971 book The SNOBOL4 Programming Language, 2nd Edition.
Griswold and Faber, Bell Labs, 1962.
- See Also:
Despite its rather punch-card oriented
SNOBOL4 was one of the coolest
languages of all time. Here's why:
- Super-powerful pattern-matching
- Rich pattern composition semantics
- Interpretive environment (in 1961!)
The expressiveness of SNOBOL, and its
ability to compose simple functions in
powerful utilities, had a profound effect
on the evolution of the UNIX programming
environment in the early 1970s, as well
as on tools that originated in that
environment, like sed, awk, and Perl.
Several free UNIX implementations of
SNOBOL dialects (e.g. SPITBOL) exist, as well as
a free version of SNOBOL4 for DOS named
Vanilla. The leading commercial
implementation is by Catspaw, Inc.
Of course, the power of the language and
its rather idiomatic control flow features
make SNOBOL4 code almost impossible to
read and understand after writing it.
- Sample code:
* Find biggest words and numbers in a test string
* (from Griswold,Poage,& Polonsky, 1971)
BIGP = (*P $ TRY *GT(SIZE(TRY,SIZE(BIG))) $ BIG FAIL
STR = 'IN 1964 NFL ATTENDANCE JUMPED TO 4,807884; '
'AN INCREASE OF 401,810.'
P = SPAN('0123456789,')
OUTPUT = 'LONGEST NUMBER IS ' BIG
P = SPAN('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
OUTPUT = 'LONGEST WORD IS ' BIG
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.