SNOBOL4+ Programming Language

One of my favorite programming languages, and in general my first choice for a wide array of everyday programming tasks, is one called SNOBOL4+. The SNOBOL4 programming language originated at Bell Labs in the 1960s, and rapidly turned out to be more interesting than the research project its creators had invented it to work on.

Learning SNOBOL4. In a world with lots of little-known programming languages, SNOBOL4+ is one of the rare ones that quickly and more than fully repays the effort it takes to learn it... although it's in fact an easier language to learn and use than BASIC is. The language is "good for all of the things that other programming languages are not good for". Another user commented, "it's not good for everything... but the things it's good for, nothing else even comes close." One friend back at the University of Illinois, John Mullen, once remarked, "a programmer who learns SNOBOL as their first programming language... is probably ruined for life."

What SNOBOL4 Looks Like. SNOBOL4 really doesn't much resemble any other programming language. Although it has neither IF/THEN nor DO loops, its unique success/fail paradigm coupled with "alternative evaluation" and "inherited failure" provide high-level implicit flow control nevertheless. The language is a very-high-level one which is ironically both loosely typed (you can change the datatype of any variable by simply assigning a value of some other datatype to it) and strongly typed (the system knows the correct datatype of all variables and won't let you misuse one... although it can and generally automatically does any reasonable conversions that would allow you to do what you're trying to do with it). It is particularly strong for any kind of data format conversion, problems involving data representations and especially linked data structures, dealing with character strings of all kinds, and problems involving memory management. The language supports a definitive pattern matching and string parsing capability... just about the ultimate imaginable of the genre.

There is a (limited, but still useful) freeware version of SNOBOL4 for PCs, called Vanilla SNOBOL4. This software, a freeware version of Catspaw's SNOBOL4+ implementation, includes an excellent 150-page tutorial and user's guide that describes the language. Set your browser to "download to disk" and click here to download a copy of it. (Note that it's an .ARC format file, you'll need PKXARC or PKUNPAK or similar utility to decompress it).

The (previously commercial software) SNOBOL4+ is also now being released as freeware too (since Catspaw is now commercializing their much faster SPITBOL-386 product instead). Although the revisions to the documentation to reflect its freeware status are still not finished, the software itself for the compiler can be downloaded by setting your browser to "download to disk" (or use your right mouse button, for some browsers) and clicking here to download it. (This one is a .ZIP format file, which will need PKUNZIP or similar utility to decompress it). Initially, you can use the documentation for Vanilla SNOBOL4 (above); I'll update this page as soon as I hear that the documentation specific to the freeware version of SNOBOL4+ is ready.

If you are interested in how one actually uses all the neat features in SNOBOL4 to attack a wide array of problems, I'd strongly recommend the excellent book "Algorithms in SNOBOL4" by Gimpel, also available from Catspaw.

A generic version of the SIL (Bell Labs) implementation SNOBOL4 compiler converted by Phil Budne to C and portable to essentially any C-compatible system (it has already been tested with Borland C on PCs and more than a dozen different flavors of Unix), can also be downloaded from Phil's Web and FTP site. He also has a wealth of other good links to other SNOBOL sites.

Other versions of SNOBOL4 available for specific other machines can be downloaded by anonymous FTP from ftp.cs.arizona.edu, subdirectory snobol.

Other interesting SNOBOL4-related links. One of the more interesting SNOBOL4 sites on the Web is one in Holland which includes a fascinating selection of some truly perverse SNOBOL4/SPITBOL programs (follow the links to "Dirty SNOBOL"). Click here to visit the site.

T-shirts available

Some years ago, for my computer consulting booth at a computer show in England, I had a very small number of SNOBOL4+ T-shirts made. They are teal blue color (except the "small" size which is a turquoise color) with the SNOBOL4+ logo (as on the book cover above) in black on the front, along with a large white Catspaw "pawprint" logo, and are a very high-quality shirt. If you're interested, they are $14.00 each plus $2.00 shipping (in the USA, inquire for overseas). There are a very limited number of these shirts in the world, so they are very much a collector's item. E-mail me if you're interested in having one of your very own! (NOTE: I also have Icon Programming Language T-shirts, too. Same deal.)


Use the BACK control on your Web browser, or click here to return to my main home page.

This page and all linked contents originating with me are Copyright (C) 1995-2002 by Gordon E. Peterson II, all rights reserved worldwide. Last revised May 16th, 2002.