SNOBOL refers to a series of programming languages developed by David J. Farber, Ralph E. Griswold, and Ivan P. Polonsky, at AT&T Bell Laboratories, between 1962 and 1967, as well as more modern implementations.
The last stable release was SNOBOL4 in 1967, so SNOBOL is not a new language.
The language was designed to be used in the symbolic manipulation of polynomials. Written in assembly language for the IBM 7090, it had a simple syntax, only one datatype (the string), no functions, no declarations, and very little error control. Nevertheless, other groups began to use it. As a result, the authors rewrote it, adding standard and user-defined functions, releasing it as SNOBOL3. There was a SNOBOL2, but it was a short-lived development version that was never released.
SNOBOL3 became popular, and the authors rewrote it for other computers, resulting in several incompatible dialects.
The authors began to receive requests for extensions to the language, as well as complaints about incompatibilities and bugs in versions that they hadn't written. Because of this, and the fact that several new computers were released in the late 1960s, work began on SNOBOL4, which was to have several extra datatypes and features, and to be based on a virtual machine, so that it could be more easily ported to other computer systems. The language translator was still written in assembly language, although the macro features of the assembler were used to define the virtual machine instructions of the SNOBOL Implementation Language (SIL). This made portability easier.
SNOBOL4 supports several built-in data types, such as integers and limited precision real numbers, arrays, patterns, strings, and tables. Programmers can define additional data types and new functions.
Although SNOBOL is no longer in active production, the language has been used to study compilers, formal grammars, and artificial intelligence, particularly machine translation and machine comprehension of natural languages. There are, also, more modern implementations of the language.
Today, Catspaw, Inc. provides the SNOBOL4 language for several different computer platforms, including DOS, Mac. Sun, RS/6000, and others.
The language is ordinarily implemented as an interpreter due to the difficulty in implementing some of its very high-level features. However, the SPITBOL compiler provides nearly all of the facilities that the interpreter provides. The file editor for the Michigan Terminal System provides pattern matching based on SNOBOL4 patterns.
Other implementations include Macro SNOBOL4 in C, Minnesota SNOBOL4, SITBOL20, SPITBOL, and Vanilla SNOBOL4. The SPITBOL implementation introduced several new features, many of which have been added to other recent SNOBOL4 implementations. Originally a commercial product, SPITBOL has been released under the GNU General Public License.
Snostorm is a version of the SNOBOL4 language that adds structured programming constructs and runs under the Michigan Terminal System. A self-contained programming language, rather than a superset of SNOBOL4, Snocone adds block-structured constructs to SNOBOL4.
The focus of this category is on the SNOBOL programming language and any of its implementations or dialects. Editors or tools designed to facilitate SNOBOL programming are appropriate for this category, as well, as are any SNOBOL user groups, forums, tutorials, or guides.
 
 
Recommended Resources
Tracing the history of the SNOBOL (StriNg Oriented symBOlic Language) computer programming language, an account of its origins and development is given. Developed at Bell Laboratories between 1962 and 1967, the original language was abandoned with SNOBOL4, although modern implementations continue. First implemented for the IBM 7090, it was initially called SEXI (String EXpression Interpreter). The features of the language are discussed, and its place in the programming timeline may be viewed.
http://www.computernostalgia.net/articles/snobol.htm
Freely available through a General Public License, Snoflake is a JavaScript runtime for the SNOBOL programming language, designed to run in a browser and standalone environments. It is a port of the macro implementation of SNOBOL4. Hosted and still under development at GitHub, its features, status, compatibility, and contributing documentation are put forth, along with licensure data.
https://github.com/atdt/snoflake
SNOBOL Pattern-Matching in Java
Introducing JSnobol, which offers the full generality of SNOBOL pattern-matching within an object-oriented Java application. Developed in 2005, the package includes a compiler, pattern-matching code, and an integrated development environment (IDE) for coding and testing SNOBOL patterns, and generating Java source-code statements for inclusion in a Java program. A description of JSnobol is put forth, along with a SNOBOL4 programming language manual, sandbox page, and full version download.
http://aeresrealm.com/Software/JSnobol/
Snobol3 - Snobol 3 Interpreter
Designed by Dennis Heimbigner, at the Software Engineering Research Laboratory, Computer Science Department of the University of Colorado, the Snobol3 interpreter is written in Java, and adheres closely to the SNOBOL3 programming language, as defined in the SNOBOL3 Primer. Its description is featured here, and the files and reference manual may be downloaded from the site, available under the BSD license.
http://www.snobol4.org/dennis.heimbigner/s3/
SNOBOL4 and SPITBOL Information
Catspaw, Inc. provides the SNOBOL4 language for several computer platforms, including SPITBOL, a high-performance, 32-bit implementation of the SNOBOL4 programming language. Specifications and ordering information can be downloaded in PDF format. SPITBOL 360 is distributed under the General Public License, and a download link is provided. Other resources include contact information for Catspaw, as well as links to other SNOBOL4 sites, including an FTP site, and SNOCONE, an experimental language.
http://snobol4.com/
SNOBOL4 (StriNg Oriented and symBOlic Language) is a programming language for text processing, pattern matching, and other purposes, originally implemented at Bell Telephone Laboratories in the 1970s. The history of the language is put forth here, along with information and links to available implementations, information about historic implementations, and a comprehensive list of other online resources relating to the language, although some of them are no longer working.
http://www.snobol4.org/
SourceForge: SNOBOL4 Programming Language
SNOBOL4, known as a string language, excels at any task involving symbolic manipulations and provides runtime typing, garbage collection, user data types, and on-the-fly compilation. Programmed in C, the language was registered in 2001, and available for free download under a GNU General Public License version 2.0. Users may post reviews, report bugs, and view mailing lists. A "Hello World" code example is given.
https://sourceforge.net/projects/snobol4/
The Minnesota SNOBOL4 Language
The Minnesota SNOBOL4 Language Derived from the SNOBOL4 Implementation Language by Professor Ralph E. Griswold, the Minnesota SNOBOL4 Interpreter runs source programs that are written in the SNOBOL4 programming language, running the programs under the IBM DOS or an equivalent, like MS-DOS, Windows 95, OS/2, or others. The executables and a manual may be downloaded from the site, which also includes an introduction, implementation specifics, sample programs, and error messages.
http://berstis.com/snobol4.htm
TOPS-20: Using SNOBOL/SITBOL on TWENEX.ORG
The implementation of SNOBOL available on TWENEX.ORG is SITBOL20, developed at the Stevens Institute of Technology. Although the documentation for SITBOL20 is not readily available, it is mostly consistent with generic SNOBOL4, differences mostly constrained to I/O. This tutorial is focused on the aspects of SITBOL20 that are particular to writing and running SNOBOL programs on TWENEX.ORG, particularly those dealing with its use of I/O.
http://wiki.twenex.org/tutorials:snobol
Try MTS: SNOBOL - Introduction
The Michigan Terminal System is an operating system running on IBM System/360 compatible mainframes from the 1960s. It once ran at a number of universities in the US, UK, and Canada, but is now available for other purposes, including experimentation with some of the older programming languages, including SNOBOL. The site also includes an introduction to SNOBOL, with instructions for using the SNOBOL4 interpreter on MTS, as well as SNOBOL4B. Registering as a user is required, however.
https://try-mts.com/snobol-introduction/