I learned and used SNOBOL for RBK Dewar's compiler classes at NYU, 78-79. (Dewar was one of the authors of SPITBOL, an implementation of the language).
Because of this, experience, a couple of years later, in grad school elsewhere, I was able to help someone in the computing center debug a client's SNOBOL program.
Sure, this wasn't a huge insurance company writing their payroll system, but SNOBOL was a real language. But ignoring that: SNOBOL was a completely unique language, beautiful in its own way. It looked like a very sparse form of assembler language. Control flow was bizarre: a statement could "succeed" or "fail", and a statement could specify goto targets for either, both, or none of these cases. (I don't know the exact dates, but SNOBOL must have been designed around the same time as the famous "Goto considered harmful" letter.)
As a measure of how good the language was: SNOBOL is famously based on the idea of string pattern matching. I found SNOBOL completely intuitive and easy to use. By contrast, I find UNIX regular expressions incomprehensible, and they send me to RTFM each time I use them. I have a similar view of Perl. Ugly and unintuitive, the exact opposite of SNOBOL.
Also, I would like to recommend the Griswold, Poage, and Polonski book on SNOBOL4. I remember it as a truly excellent language book, on the level of K&R.
I took one of his classes as an undergraduate at NYU, but used SNOBOL, SETL, and some other early languages as part of a young scholars high school program at NYU in the early 80s.
Also, that experience primed me for appreciating the relational model, and relational algebra, and I went on to specialize in DBMSs.
- Towers of Hanoi in SNOBOL
- It's true: Ada on CP/M
- Discover your inner extrovert with Smalltalk-80
- In the '90s everything will be in Eiffel
- How to ace your next Modula-2 interview"4.6.4 Example - Tower of Hanoi" on pages 109-111 (the scanned page numbers)
Here's the program in its all-caps, weirdly indented beauty:
DEFINE('HANOI(N,NS,ND,NI)') :(HANOI.END)
HANOI EQ(N,O) :S(RETURN)
HANOI(N - 1,NS,NI,ND)
OUTPUT 'MOVE DISC ' N ' FROM ' NS ' TO ' ND
HANOI(N - 1,NI,ND,NS) :(RETURN)
HANOI.END
TEST HANOI (5,'A','C','B')
ENDIn the 1960s, most programming was done on punched cards, and keypunch machines (and many computers) didn't have lower case letters on them. Hence, languages from that era, like FORTRAN, COBOL, PL/I, LISP and assembly language, were written in all-caps.
(The book's title is misleading now: it doesn't much overlap a modern undergrad intro to algorithms. It's more "here are examples and techniques of programming in SNOBOL".)
(Maurer also composes or composed music. His madrigal "Forty Bucks" set to music the text of a Montgomery County, Maryland, photo enforcement ticket.)
We quite possibly crossed paths at GWU back then.
... in the 1980s ...
Of course nobody actually knew or used it.