Aviva Directory » Computers & Internet » Programming » SNOBOL

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

Search for SNOBOL on Google, Bing, or Yahoo!