SNOBOL
The year 1962 witnessed the birth of a project in the corridors of Bell Labs in Whippany, New Jersey, that would change the way string processing was conceived. David J. Farber, Ralph E. Griswold, and Ivan P. Polonsky were working at the Programming Research Studies department, a unit that would soon relocate to Holmdel. Under Chester Lee’s direction, this laboratory explored diverse territories ranging from automata theory to graph analysis and associative processors. Their daily work confronted them with the frustrating limitations of the SCL language, created by Chester Lee himself. Disappointing performance, restricted data space, and convoluted syntax that turned simple operations into veritable obstacle courses finally convinced them that an alternative was necessary.
After some attempts with COMIT, a language dedicated to natural language processing, the trio decided to take matters into their own hands. The development of what would become SNOBOL began in utmost secrecy, unbeknownst to Chester Lee, who was precisely refining a new version of his SCL. This somewhat comical situation took an embarrassing turn in November 1962 when both projects came to light. The department could not afford to fund two competing developments, but the SNOBOL team had a considerable head start. Chester Lee, being a good sport, finally accepted the inevitable.
The naming of the new language was rather improvised. First called SCL7, then renamed SEXI for String EXpression Interpreter, it ultimately inherited the name SNOBOL with a deliberately whimsical pseudo-acronym: StriNg Oriented symBOlic Language. This joke would later embarrass its creators during official presentations, never imagining the impact their creation would have.
In early 1963, the first operational version ran on the IBM 7090. The team made the bold choice of pure interpretation, immediately dismissing the idea of a traditional compiler, which they deemed unsuitable for the intended specificities. This decision proved rewarding, as three weeks were sufficient to obtain a usable version, an achievement in which the team took legitimate pride and which proved that a programming language could come to life quickly without consuming considerable budgets.
SNOBOL disrupted established practices by treating character strings as unified entities rather than simple arrays. This approach was accompanied by sophisticated pattern recognition mechanisms with backtracking, opening unprecedented perspectives for text analysis. The success achieved at Bell Labs naturally led to enhanced versions. SNOBOL2 arrived as early as 1964 with built-in functions for manipulating strings and numbers. SNOBOL3 followed by introducing user-definable functions.
In 1966, SNOBOL4 revolutionized the approach. Patterns became data objects in their own right, multiple types appeared including arrays and tables, dynamic compilation made its entrance with unevaluated expressions. The use of an abstract machine language called SIL guaranteed remarkable portability.
SNOBOL’s distribution philosophy broke from the practices of the time. Unlike established customs, the language spread freely, without any restrictions, source code included. This unusual generosity, accompanied by free technical support from Bell Labs, facilitated its massive adoption in universities and contributed greatly to its influence in the computing community.
Applications exceeded initial intentions. Designed to manipulate formulas and analyze graphs, SNOBOL found its way into document formatting and humanities computing. Compilation, rapid prototyping, and non-numeric data processing further expanded its scope. Its concepts of string manipulation and pattern recognition influenced numerous subsequent creations, while SNOBOL extensions enriched Fortran, PL/I, and many others.
Starting from a practical need of a few researchers, SNOBOL ended up transforming the approach to string processing and durably influencing the evolution of programming languages. It also demonstrates that freedom of experimentation and generosity in distribution, well before free software, constitute powerful drivers for technological innovation.