SNOBOL History

The first SNOBOL language was developed by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky at Bell Labs in 1962. An early name for SNOBOL was SEXI (String EXtraction Interpreter). Farber was once overheard to say that the name SNOBOL was largely contrived when the original JACM article was published. The name was apparently picked when one of the original implementors made a statment such as, "This program doesn't have a snowball's chance in hell of ...".

The original SNOBOL system was written in the BEFAP (Bell Laboratories FORTRAN assembly program) assembler for the IBM 7090. The main language defect was the lack of built-in functions. A new implementation with built-ins produced SNOBOL2 (c. 1964). Programmer defined functions were added to make SNOBOL3 (c. 1965).

SNOBOL3 was ported to the IBM 7040/7044 and independent implementations were done for other machines including the Burroughs 5500, CDC 3600, IBM 1620, DEC PDP-6, RCA 601, and SDS 930. Early versions of Unix came with SNOBOL3ish interpreter called sno. The multitude of implementations caused a proliferation of language dialects both intentional and unintentional.

A recent implementation of SNOBOL3 (in Java!) has been done by Dennis Heimbigner of the Software Engineering Research Laboratory at the Computer Science Department of the University of Colorado!

The advent of third-generation computers with larger memories and faster CPU's provided the computes for SNOBOL4, and the addition of a number of elements familiar to SNOBOL4 users: improved patterns, numeric data types, arrays, structures and finally, tables.

Work on SNOBOL4 began in 1966, and was meant to be portable from the outset. The SNOBOL Implementation Language or SIL was meant to be implemented as assembler macros. This implementation is sometimes called Macro SNOBOL4. Implementation began on the IBM 7094, in anticpation of moving to the MULTICS Virtual Memory system on the GE 645. After Bell Labs withdrew from the MULTICS project, development was moved to the IBM System/360. Macro SNOBOL4 was ported to over 50 systems, including: CDC 6600, GE 635, UNIVAC 1108, RCA Spectra 70, Ferranti Atlas 2, SDS Sigma 7, DEC PDP-10 Burroughs 6700, and Multics, among others.

Macro SNOBOL4 was not well suited to small machines, and could not fit in the 16-bit address spaces of many mini/microcomputers. Macro SNOBOL4 ports to the 8086 (IBM PC) include Catspaw "Vanilla SNOBOL4" and SNOBOL4+, and Minnesota SNOBOL4.

Later independent implementations of the language include: SPITBOL\360 and SPITBOL\370 (a highly tuned compiler), Macro SPITBOL (a portable implementation, including MaxSPITBOL, SPITBOL-386), (all by Robert B.K. Dewar), SITBOL (implemented at The Stevens Institute of Technology by James F. Gimpel), FASBOL, ELFBOL and others.

None of them have anything to do COBOL!