On being the maintainer, sole developer, and probably the sole active user of the programming language SPITBOL

As best as I can tell, I am in what I believe to be a unique situation:

I am the maintainer, sole developer, and probably the only active user of the programming language SPITBOL.

(If you know of anyone else who is maintaining an open-source implemenation of a programming language that has only one user, please let me know, via comments to this post.)

Let me explain.

In June of this year I took over maintainership of Macro SPITBOL. Mark Emmer had labored for almost a quarter century in this task. He kept Macro SPITBOL alive, and that is the task I face going forward.

Macro SPITBOL, the work of Robert B. K. Dewar and the late A. P. “Tony” McCann, is the best implementation of the SNOBOL4 language yet created. I believe it to be a remarkable accomplishment.

SNOBOL was created at Bell Labs in the early 60’s. The basic reference is The SNOBOL4 Programming Language, by R. E. “Ralph” Griswold, J. F. Pogue, and and I. P. Polonsky. It is known to SNOBOL4/SPITBOL folks as just “The Green Book,” due to the color of its cover. (Mark Emmer secured the rights to make it available, and the pdf for the book is freely above at the cited URL.)

SNOBOL was the first language to address processing strings and text in a serious way. It’s most notable innovation was the notion of “pattern.” As part of this, it introduced many primitives such as BREAK and SPAN. Those terms are now commonly used in many libraries and programs that process text.

SNOBOL was one of several languages widely taught in “Introduction To Programming” courses in the 70’s and early 80’s.Then — I think it fair to say — SNOBOL sank into obscurity.

Macro SPITBOL was created in the mid 70’s. Dewar and McCann finished their work by the late 70’s. I did the port to CDC 6600 in the late 70’s, and worked with Robert to do the port to the IBM/PC 8086 in 1983. Mark Emmer then took over the project, and did ports to Mac, Solaris, and various versions of Unix.

At most ten people worked on refining the SPITBOL implementation. I’m the only one still working on it. Mark lends a hand now and then, but more as an advisor than programmer.

Since taking over maintainership I have finished the Linux port (Mark had already done most of the heavy lifting). I started writing about SPITBOL on this b log to drum up interest, and I am actively working on the port to Apple’s OSX, to be followed by a port to the ARM architecture, so that SPITBOL can be made available on Apple’s ioS and Google’s Android operating environments (both use ARM chips).

Here is where the work stands:

  • There have been just over 3,000 downloads of the Windows version since it was released in open-source form in July 2009. I’ve received less than ten, if not zero, emails and blog comments about this version since its release.
  • There have been 30 (thirty) downloads of the Linux version since it was released two months ago. I’ve heard back from few than five people that they have downloaded it and also tried it.
  • While a few (under 10) folks have expressed interest in the work, no one has stepped forward to work on the code as a developer.
  • I’ve seen no sign anyone is actively using SNOBOL4/SPITBOL in a serious way. SPITBOL was once used by folks in the linguistics community, but I’ve seen no sign of recent work.
  • I did a search on Google for “SPITBOL” in June and got about 17,000 matches. I also did a search on “SNOBOL4” and got about 47,000 matches. I just repeated the searches and got the same results.
  • Despite making many posts about SPITBOL on my blog, I have yet to see any one of them achieve more than 20 or so views.

In summary, though I know I have advanced the code, I have been a failure trying to drum up interest in the project.

What Next?

I am not giving up. I have several reasons to push on:

  • SPITBOL is unique in the power it provides to manipulate strings and text. I’ve yet to see anything else come close.
  • SPITBOL is both amazingly fast and compact. It can compile hundreds of thousands of lines of code per second, in a program consisting of under 20,0000 executable instructions. It runs at the hardware level. For example, it includes a compacting mark-sweek garbage collector, while I know of at least one widely-used programmng language that still uses reference counts. [1]
  • The ARM implementation should be *very* fast.
  • I have packaged the system so it is self-hosting. SPITBOL uses tcc for its C compiler, NASM for its assembler, musl libc for its runtime libraries, and Rob Lanbley’s toybox to provide basic Unix commands. SPITBOL is built with these open-source packages, and the source for them is included in the SPITBOL distribution, so you get not only Macro SPITBOL, but a complete development environment to boot.
  • I believe there is a great opportunity due to the poor support for Unicode in other programming languages and libraries. If I can add full support for Unicode, I hope to realize “if you build it, they will come.”
  • Perhaps most important: SPITBOL is fun!. I’ve been programming for over fifty years, and I have never had so much fun save when I was working on SPITBOL, as either user of the language or as an implementer.
  • The quality of the system will speak for itself: Code Talks.
  • Knowing that I am starting from zero, any progress will be great news, and it will be fun to see how far I can get. I had a similar experience working with Philippe Charles on Jikes. We started from nothing, and were able to build something that achieved some success. I hope to repeat that, and I know I will have fun trying to do so, even if I don’t succeed.

It is also evident that talking about SPITBOL is a thankless task for now, so I’m going to put off blogging, twittering and such, so I can concentrate on the coding, which after all is all that matters.

Most importantly, I believe that polishing the implementation and porting it to new environments is not enough.

The *only* way to move the project forward is to finish needed refinement and ports as soon as possible, and then to use the result to write applications in SPITBOL that demonstrate what can done when programming in SPITBOL.

I have a few ideas about useful applications, and hope to get to work on them as soon as possible.

We shall see…


1. Can you name a widely-used contemporary programming language that still uses the 60’s software technology of reference counts to manage storage?


  1. Clay
    Posted September 25, 2012 at 23:32 | Permalink | Reply

    Hi Dave,

    Just wanted to drop you a line and say (1) thank you for taking over this project and (2) I’m going to explore snobol.

    I’ve been interested in it ever since watching an interview of Guy Steele mention that snobol was one of two or three languages that people should check out.

    • Posted October 5, 2012 at 15:23 | Permalink | Reply


      Thanks for the note. What were the other two?

      • Clay
        Posted October 10, 2012 at 15:17 | Permalink

        I wish I could remember what they were. I only remember snobol because I had never heard of it before then.

  2. paul
    Posted September 30, 2012 at 02:56 | Permalink | Reply

    Python uses refcounting and GNU awk does too. I’m not sure it’s such a bad thing. It has advantages like freeing up stuff as soon as the last reference vanishes.

    I used Spitbol as a high school student back in the day, so I remember it affectionately. I’ll probably play with the Linux version a bit. I found your blog in I guess 2009, when you were not actively posting or answering email, and I tried then to figure out what happened to you. I suspect you’re getting low views now because people stopped monitoring your blog after you quit posting.

    I’m skeptical that an asm template system can produce code as tight as an optimizing compiler, and GNU C does have “goto *address” (used by GNU Forth), so a C implementation would be interesting.

    Can you say how much ram it takes to run Spitbol? It might be interesting to run on midsized embedded computers, say with 64k, if it can run in that. There is a new ultra-cheap TI Launchpad board with an ARM M4 chip, with 256k of program flash and 32k of ram, so I wonder if that’s a possibility at all. I’m sort of interested in Spitbol now as a source of ideas about garbage collection in such a constrained environment. The language I’d be trying to use is more Lisp-like, though.

    You say “20,0000 instructions” but I think you mean 20,000.

    • Posted October 5, 2012 at 15:37 | Permalink | Reply


      Thanks for the note.

      It’s not that reference counting is bad. It’s just that it has its problems, and is so inferior to the reclamation technique used by spitbol – mark-sweep garbage collection – which
      finds more unused storage.

      That was available in SPITBOL almost two decades before the first Python implementation appeared.

      SPITBOL doesn’t need an optimizing compiler. It is hand-written to exploit the hardware to the max. Having worked on translators for CDC 6600, Intel 8086 and x86, I can attest it produces
      optimial code for basic string operations.

      As for size, SPITBOL/PC was 16-bit. There is also an additional implementation called MICRAL, by Dewar, Goss et. al. This work aggressively compressed the instruction stream. It was recently published, and can be found on Amazon, though the price is not cheap.

      Yes, it should be 20,000, not 200,000. Current x86 version generates about 15,000 lines of executable assembler, plus 4,000 so so lines of data declarations and definitions.
      This doesn’t count the C runtime, but by any contemporary standards SPITBOL is very small.

      Yes, GNU/C does extend to allow ‘goto address’ but SPITBOL needs more than this. For example, it incorporates the notion of exception handling, something not found in C. I plan to write about this soon as time permits.


    • Mark Emmer
      Posted October 20, 2012 at 12:27 | Permalink | Reply

      I always wondered how the Incoterm implementation managed to compress Spitbol into its limited memory. The MICRAL paper seems to be available free (though with some typographic corruptions) at http://www.archive.org/stream/microspitbol00dewa/microspitbol00dewa_djvu.txt

      As for optimal code, an asm macro system like MINIMAL combined with a peephole optimizer to eliminate redundant load/stores between templates seems to do quite well, since good register allocation has already been accomplished in the MINIMAL source. On machines with spare registers, like SPARC, hot variables are allocated to registers by the translator (something to keep in mind for a future x86-64 or ARM translator). Spitbol’s speed is proof that these techniques work, and any additional gains from better translation are likely to be (ahem…) minimal.

      A C implementation would improve portability however, but there are issues that go beyond “goto *address”. Exception handling mentioned by Dave may be tractable in GCC because a function’s return address can be manipulated, but there are other problems. For example, garbage collection requires finding all pointers to live blocks in dynamic storage, and if C is hiding one in an invisible temp, storage regen will eventually fail. The MINIMAL source has other bizarre things, like an ordinal byte identifier embedded in the code section in front of each block of asm code, used (indirectly) to identify data types. There’s no corresponding construct in GCC, requiring that this mechanism be rethought. I made a brief investigation of the issues of recoding in C about 18 years ago, and didn’t see any mechanical way to do it, and so put it on the shelf.


      • Posted October 21, 2012 at 22:55 | Permalink


        Thanks for the comment.

        Re MICRAL, you can find a book about it on Amazon. It came out last year, and appears to be the papers produced by Dewar, Clint Goss (whom I knew whilst at NYU) and Marty Golumbic (who used to have the office across the hall from mine when he did a postdoc at Courant). I haven’t bought a copy since it is quite expensive. The MICRAL work is interesting as an exercise in aggressive code compression, though not of practical interest these days given the speed and available memory of even the smallest embedded systems.

        As for an implementation in C, I agree that attempting to translate MINIMAL to C would be *very* difficult.

        However, it would be interesting to have an implementation in C that interpreted MINIMAL code. Bellard’s success in writing a 386 emulator in Javascript that is able to boot Linux in a browser window in about ten seconds — a *very* impressive programming feat — suggests this code might be of value.

        Indeed, based on Bellard’s work, it might be even more interesting to do an implementation of SPITBOL in Javascript.


  3. Posted October 10, 2012 at 14:49 | Permalink | Reply

    Having come accross your Spitbol-Linux, I am impressed: Thank you, very much. As a long-term user of the language (http://www2.hsu-hh.de/hisalt/projects/betautf8.htm), I would like to see runtime module creation, and above all, external function loading. Is there any way to give you any assistance or help?

    Burkhard Meissner

    • Posted October 11, 2012 at 09:43 | Permalink | Reply


      Checkout out your site — very impressive indeed.

      And I thought I was the only person still writing SNOBOL4/SPITBOL programs … Good to see I’m not alone.

      Re helping out, a long-term goal is to add *full* support for Unicode to SPITBOL. That will need 64-bit word, 32-bit character version plus suitable conversions for UTF-8, etc.

      Re helping out, that will be the time for you to really dive in, though of course once the immediate porting efforts are in better shape, any help testing would of course be greatly appreciated.


  4. Robin Anderson
    Posted October 18, 2012 at 02:55 | Permalink | Reply

    Dave – I’m deeply grateful to you for maintaining and developing Spitbol.
    I’m a longtime Spitbol enthusiast (since the days of IBM360 Spitbol) – I use SPARC Spitbol every day, and it ‘just works’!
    I suspect there are many more like me who quietly get on with using the language and only surface when there is a problem – and mostly there isn’t!

    I wouldn’t have surfaced except that I have recently moved from Solaris 9 to Solaris 10 – and Spitbol no longer works. Has anyone else had a problem with upgrading to Sol 10?

    best wishes, and keep up the good work – it’s much appreciated

    • Mark Emmer
      Posted October 20, 2012 at 12:32 | Permalink | Reply

      I gave away my last Sparc machine a few years ago. If you want to try rebuilding the system, I can provide you with the source files. Contact me offline at marke at snobol4.com


  5. Posted January 20, 2013 at 01:30 | Permalink | Reply

    Thank you for keeping Snobol4 alive in the wonderful form of Spitbol! I don’t do a lot of programming (I’m a writer/translator/editor), but when I do, it’s always to process text. My friends say I’ve gone retro, but I believe that in Spitbol, I’ve finally found the language I’ve been looking for. I downloaded your Linux version and have been getting acquainted with it for a few days now. I’m already quite certain that it’s going to prove to be just the right fit for my needs. Now I can stop jumping on this object-oriented bandwagon and that functional-programming bandwagon and get down to business–and enjoy it, too. Keep up the good work!

    • Posted January 23, 2013 at 10:54 | Permalink | Reply


      Thanks for the kind words.

      I will release a new version of SPITBOL for Unix shortly.


  6. Nick gloor
    Posted August 27, 2013 at 12:17 | Permalink | Reply

    Just a note to let you know your efforts are not unappreciated. I started using spitbol when I discovered (1981) the interpreter on the mvs mainframe at work and started using it for things like rewriting entire jcl libraries and scanning through log tapes, when we moved to Solaris I continued to use it, along the way I managed to convince management to spring for a copy of Marc’s Mac version for my desktop. I bought a x86 version for home use from him as well.

    I think snobol/spitbol is one of the most useful tools I have learned over my career.

    I stumbled over your blog looking to see if any one had done an interface/bridge between objective-c and snobol/spitbol. Do you think this will ever happen?

    Thanks again for keeping it alive,

    A happy snobol user,


  7. Posted September 24, 2014 at 09:13 | Permalink | Reply

    Greetings! I used MaxSPITBOL from about 1988 (on Mac SE computers) until I retired my last machine capable of running Classic (a PowerMac G5 DP unit running I think OSX 10.4. Some IO functions didn’t work properly at that stage, but in general it could still be used. Would LOVE to have a way to run it on a current Intel Mac. Over the years I used it mainly for concordancing in Russian (not Unicode, alas), and for extracting data from a Filemaker Pro database which used repeating fields. It was very stupid to set it up with repeating fields, which don’t export properly, but I found that I could “launder” the data through SPITBOL and get it into a format that could be loaded into Excel for easy manipulation there. Just last week someone approached me asking for advice about counting stressed vowels in Russian text (as one component of a formula for automatic determination of the level of difficulty of texts for use in student examinations to determine reading proficiency. I immediately started describing how to do this in SPITBOL … if I only had a way to run it!! I guess I could also use a Windows version, but I can’t compile anything (too ignorant for that), so I’d need to find a downloadable executable version. Any advice would be welcome.

    Keep up the good work!


    • Posted November 28, 2014 at 10:59 | Permalink | Reply


      Thanks for the note.

      The executable for SPITBOL for Windows can be found at code.google.com/p/spitbol.

      Doing the port to MAC OSX is on my TODO list.


  8. Posted August 22, 2015 at 14:11 | Permalink | Reply

    This seems interesting. However, is there anywhere I can get an overview of SPITBOL and a clean documentation?

  9. Posted August 22, 2015 at 14:38 | Permalink | Reply

    I first heard of SNOBOL when I was studying computer science at UNC-W back in the mid 90’s. I never actually got a chance to program in it, but the language
    has remained on my “list of languages to learn one day” ever since. Maybe this blog post will be the thing that inspires me to actually pick it up and start
    working with it a bit. At any rate, thanks for doing the work your doing. I’m sure somebody will benefit from it!

  10. Ambroz Bizjak
    Posted August 22, 2015 at 15:02 | Permalink | Reply

    > If you know of anyone else who is maintaining an open-source implemenation of a programming language that has only one user, please let me know, via comments to this post.
    I’m guessing I qualify 🙂 https://code.google.com/p/badvpn/wiki/NCD

  11. Posted August 22, 2015 at 16:24 | Permalink | Reply

    Exceptions can be done in C with setjmp/longjmp, and is pretty easy when single threaded where a single global can be used to anchor the list of exception frames. (Multi-threaded needs per-thread globals). I agree that unicode would be an important modernization, with UTF8 probably sufficing.

    A renaissance might be possible by targeting asm.js, enabling use in web apps.

  12. Posted August 22, 2015 at 16:28 | Permalink | Reply

    Something like this needs a niche applications market, most likely for embedded systems. I’d start by identifying the one applications market where it will clearly out perform all other languages and focus on that. Later on you can produce different ports.

    Inspiring to see passion for code and ideas survive for 50 years. I have hope now 🙂

    Best of luck Dave

  13. Posted August 22, 2015 at 17:16 | Permalink | Reply

    > (If you know of anyone else who is maintaining an open-source implemenation of a programming language that has only one user, please let me know, via comments to this post.)

    *raises hand*


    • Posted August 24, 2015 at 08:15 | Permalink | Reply

      The sole-user part was a bit tongue-in-cheek, something that most folks seem to have missed.

      My point was that if you have a passion, you should pursue it, even if no one has beaten a path to your dootstep, or even knows there is a door.


  14. Tim
    Posted August 22, 2015 at 17:27 | Permalink | Reply

    I just found this blog and want to let you know that Spitbol is still used by some of the folks in the linguistics community. I’ve been using it since 1975 and still use it all the time on Windows 10. I’ve even used it within aDosBox on my Android phone. Are you still working on Unicode support? That would be a great gift.

    • Posted August 24, 2015 at 08:12 | Permalink | Reply

      I will soon start work on an implementation in Go that will fully support Unicode using SPITBOL. That is, pattern matching against full Unicode strings.


  15. Posted August 22, 2015 at 19:04 | Permalink | Reply

    I’m not sure if this counts, but I built my own programming language: https://github.com/Richard-Walton/RichTea

  16. David
    Posted August 22, 2015 at 22:36 | Permalink | Reply

    Hi Dave – Wow, what a blast from the past. When I was in high school in the 1970s, our forward thinking computer teacher exposed us to less well-known languages including SNOBOL (MAD, LISP and others). I haven’t touched it at all since my college days, but might look at it now for fun and enlightenment.


  17. Gary Lambert
    Posted August 23, 2015 at 00:59 | Permalink | Reply

    Kudos to you sir! You are a hero to many!

    I remember SNOBOL from my B.Sc. class “Survey of Programming Languages” around 1979. The class was free to use any language to convert Roman Numerals to decimal. SNOBOL was the winner with something like a dozen lines of code.

  18. Posted August 23, 2015 at 01:51 | Permalink | Reply


    This wonderful post of yours has been at #1 on Hacker News today, a web forum that I help moderate. There are many comments over there appreciating SPITBOL, SNOBOL, and your work, so I hope you’ll check it out: https://news.ycombinator.com/item?id=10103276. Many of our users (including me!) love small, fast languages and computing history, so it’s not surprising your post struck a chord, even after three years.


  19. Marco Pariente-Cohen
    Posted August 23, 2015 at 02:06 | Permalink | Reply

    Hi David,
    I thought you should know that you reached the front page of hackernews and i feel that this would do well to boost the interest and use of SPITBOL. Perhaps the renewed interest in GoLang for its speed could replicate itself for SPITBOL.
    I am personally an obsessive polyglot and enjoy finding languages both old and new built for tiny footprints and super high efficiency, and will certainly give SPITBOL a shot.
    Here’s the link where this article was referenced -> https://news.ycombinator.com/item?id=10103276

    Apparently you’re certainly not the last and only person writing in SPITBOL, current as of August 2015 🙂

  20. Posted August 23, 2015 at 03:53 | Permalink | Reply

    I used spitbol for a while back in the early 70s. I wrote a JCL parser which we used on our IBM/360. I got one insight from that language that has stuck with me ever since. I had a design choice of creating a lot of patterns and a little bit of code or to create few patterns and a lot of code. I tried both paths and discovered that the programs were the same length. I know you won’t find that a surprise but I did. Now I write in Lisp. I find that there is a similar tradeoff between the complexity of the data representation and the complexity of the code.

    I also used it at IBM Research but only to preprocess a huge pile of text files. Once that was done we didn’t use it.

    When I taught programming, SNOBOL was one of the languages I thought everyone needed to learn. Some languages change the way you think about programming in fundamental ways and need to be part of a programmers education. (Others are APL, Assembler, C, Prolog, Lisp, OCAML (now Haskell), Smalltalk, Forth, OCCAM, HTML, KREP, and VHDL).

  21. Posted August 23, 2015 at 06:46 | Permalink | Reply

    Hi Dave,

    Thanks for your blogpost. I’m also the sole writer and user of a programming language called Saffire (saffire-lang.org and github.com/saffire), which I started mostly out of curiosity and to see if I could come up with the shortcomings of other languages I’m familiar with like PHP, Python and Ruby. It’s a steady going project for 5 years now, and with the exception of some small contributions from others (which I really appreciate), all the idea’s, design, solutions (and more often failures) are done by me.

    I never intend it to become mainstream like another Python or Php, I think that would not be a good starting point to begin with (ever), but I would really like to see more people get excited by the tools we use on a daily basis. When I started the project, I’d reckon all I needed to do was setup some initial framework (simple VM, a simple lexer/parser, some small objects like strings and ints) and people would come joining in from everywhere to finish things up. That’s a mistake that I’ll never make again I guess 🙂 Many people I know do not know C at all, which makes it harder to contribute, and when there is no real interaction possible (like file/io, database connectivity, http etc), it’s hard to get people excited because all you can show is some printouts on the console (even though it has taken so much work to actually get to that point).

    But I really enjoy coding a language that will never be used by anyone, although on occasion I miss some valuable feedback. I don’t know everything myself, and most of what I know about this stuff is learned either the hard way, or through a lot of research (including examining other languages). It’s hard to talk about detailed problems in a virtual machine to somebody who has no understanding on what it is or how it works, which means that more often than not, I’m stuck figuring out things myself.

    All in all, I think projects like these, although they might not end up mainstream, or even any stream at all, are a great way to discover more about design, architecture, and provide a great way to understand how computers on a lower level operate.

  22. Your friendly neighborhood oldguy Developer
    Posted August 23, 2015 at 13:41 | Permalink | Reply

    Okay, I downloaded, and am running it. The pdf manual apparently inserted newlines which broke the scripts. Bummer. Took me an hour or so to figure out, but… actually it was kind a good learning experience.

  23. Your friendly neighborhood oldguy Developer
    Posted August 23, 2015 at 13:42 | Permalink | Reply

    I’m running on osx, and it does appear to be fine. Hard to say that I’ll want to use this, because performance is not such a big issue (usually) and there are so many tools now to solve similar issues. Still, there’s interesting insights here.

    • Clay
      Posted August 24, 2015 at 08:30 | Permalink | Reply

      How did you compile it in OSX? I keep getting some message from clang about one of the settings not being compatible and GCC keeps popping back up as Clang. I use it in Linux.

  24. KT
    Posted May 8, 2016 at 11:06 | Permalink | Reply

    I’m having trouble detecting EOF on Solaris 5.11 — (smartos). Somehow INPUT doesn’t fail with ^D. Any pointers to debug the issue would be appreciated.

  25. mrrdev
    Posted May 29, 2016 at 15:59 | Permalink | Reply

    It’s great that you are working on SPITBOL. I was introduced to SPITBOL at Cornell on an IBM 370, but much of my experience with it was later on a couple of CDC mainframes – and apparently that version was done by you.
    When I was taking a class that covered SNOBOL4, the bookstore sold out of the Green Book, and I had to learn SNOBOL4/SPITBOL from a document from the computer center that carefully described all the differences between SNOBOL4 and SPITBOL. It required some imagination, but if SPITBOL had been a 100% faithful implementation of SNOBOL4, that document wouldn’t have existed, and I would have had a harder time.
    I still play with SNOBOL4 every once in a blue moon, but I use Phil Budne’s implementation at http://www.snobol4.org/. I ported the Unix version to Windows once, but since then Phil has done his own port, so I switched to that. More recently, I’ve jumped ship to OS X.
    I hadn’t realized that SPITBOL was now freely available. I’ll have to check it out.
    Cheers, MRR

  26. Paul Tallett
    Posted September 4, 2016 at 00:50 | Permalink | Reply


    I was at the University of Leeds in the 70’s and Tony McCann was my lecturer. I wrote several utilities in SPITBOL, but one of particular interest was a file differencer. Modelled on the DECsystem-10 Differences program, I extracted the algorithm from it and expressed it in SNOBOL, mainly to see if I could get the SNOBOL implementation to be faster than the DECsystem-10 version. It was about the same speed so I wasn’t overly impressed, but Tony got very excited and took my code and expanded it out to the SNOBOL community where such a differences program was not available. He included it on the Macro SPITBOL distribution. If anyone has a copy I would really like it.

    paul.tallett @ microsoft.com

    • Posted October 6, 2016 at 12:45 | Permalink | Reply


      I don’t have that code, though I wish that I did. I spent two weeks in Leeds in the late 70’s working with Tony. He was one of the nicest people I have ever met.


  27. dave porter
    Posted November 13, 2016 at 22:09 | Permalink | Reply

    I was at Leeds University in the 70s; Tony McCann was one of my profs (and I shared a house with Mr. Tallett, above).

    For my final year (BSc Comp. Sci.) programming project, I undertook the development of an APL compiler based on the Macro Spitbol code. Given I had 10 weeks to do it, including learning about George 3 on the ICL 1906A, it was a failure, but I handed in some chunks of code and they gave me a decent degree anyway.

    So I am a member of the world’s elite group of (former) MINIMAL programmer.

  28. James Murray
    Posted April 15, 2017 at 21:12 | Permalink | Reply

    Greetings Dave! I hope this finds you in good spirits and good health . . .

    When a student at the University of Arizona (1977-1984) I took a Comparative Languages [programming] class — Pascal, APL (I have nightmares still), LISP (worse than APL), and SNOBOL — which I absolutely loved! I found it to be elegant and incredibly powerful, and fun (even all programming was done on Hollerith cards (!). At the time Dr Griswold was the Chair of the CSc Department.

    Those were truly halcyon days; PDP11s still were revered (by some), and we students were granted 64K of memory (a vast amount – at that time) to run any/all code we wrote, which was executed on a CDC 6400. Ah yes, green-bar printouts . . . (delivered whenever the operators were bored . . .)

    I am writing with a sense of excitement that SNOBOL/SPITOL is in use by even a single soul after all of these years; it’s a bit hard to believe. (Then again, given its capabilities for string parsing and manipulation — as I [dimly] remember it — I’m also surprised that the program never found a major niche on the world computation stage. )

    Every so often those usually dormant SNOBOL-memory synapses in my cranium awaken, and wonder . . .

    Ergo, I am writing since the thought came up today, in the context that, over the years, I’ve wanted to try my hand an creating a concordance for a particular text.

    It’s been about a decade since I’ve written code of any kind (Visual Basic was my last meaningful encounter), so I’m not in any way deluded that can just pick up a new language and run with with it. Indeed, I would not have a real clue as to how to even start (e.g., setting up whatever environment would be needed to write/compile/run the code). At the same time, with a bit of initial direction I think I could have some real fun, and perhaps produce a nice result.

    If/when you read this, I would greatly enjoy any kind of reply. I can be reached via email at: jwmurrayphoto@gmail.com

    All the best,

    • Posted June 29, 2017 at 12:44 | Permalink | Reply


      Glad to learn there is *someone* who still has an interest in SPITBOL.

      Re concordance, see http://github.com/setl4/setl4/examples. There is a concordance for Shakespeare’s sonnets that is almsot complete.


      • James Murray
        Posted March 9, 2018 at 06:53 | Permalink

        Hi Dave — well, its been JUST shy of a year later, but here I am finally — much much more than belatedly, replying to YOUR kind reply to my original note . . . about once very six months or so this thought creating a concordance pops back into my head, so I shall gratefully peruse the info from the link you graciously offered last year!

      • James Murray
        Posted March 9, 2018 at 06:54 | Permalink

        YIkes, the link to the concordance(s) no longer exists . . any ideas?

    • mrrdev
      Posted June 29, 2017 at 20:11 | Permalink | Reply

      Interesting – my story is somewhat similar. I learned SNOBOL4 (we used the SPITBOL implementation) in a programming languages class at Cornell in 1978. The languages were SNOBOL4, LISP, and ALGOLW. (The latter, a predecessor to Pascal, was an odd choice because Pascal was already pretty well established.) Although the instructor was a LISP fan (Corky Cartwright studied under John McCarthy), he failed to impart his LISP enthusiasm to me. Instead, I was taken by SNOBOL4 (SPITBOL).
      I’ve used SNOBOL4 for practical work within the last 4 years. I don’t recall exactly what for; it certainly wasn’t anything that couldn’t have been done in any number of other languages. But it was fun.

One Trackback

  1. […] a 2012 blog post describing his role as the sole contributor to the SPITBOL GitHub repository—which recently […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

  • Pages

  • September 2012
    M T W T F S S
  • RSS The Wayward Word Press

  • Recent Comments

    daveshields on SPITBOL for OSX is now av…
    Russ Urquhart on SPITBOL for OSX is now av…
    Sahana’s Respo… on A brief history of Sahana by S…
    Sahana’s Respo… on A brief history of Sahana by S…
    James Murray on On being the maintainer, sole…
  • Archives

  • Blog Stats

  • Top Posts

  • Top Rated

  • Recent Posts

  • Archives

  • Top Rated

  • %d bloggers like this: