[ Jacob Mandelson's home page ]

Overview from The INTERCAL Programming Language Reference Manual by Donand R. Woods and James M. Lyon:

INTERCAL's main advantage over other programming languages is its strict simplicity. It has few capabilities, and thus there are few restrictions to be kept in mind. Since it is an exceedingly easy language to learn, one might expect it would be a good language for initiating novice programmers. Perhaps surprising, than, is the fact that it would be more likely to initiate a novice into a search for another line of work. As it turns out, INTERCAL is more useful (which isn't saying much) as a challenge to professional programmers. Those who doubt this need only refer back to the sample program in section 2.1. This 22-statement program took somewhere from 15 to 30 minutes to write, whereas the same objectives can be achieved by single-statement programs in either SNOBOL or APL.

Admittedly, neither of these is likely to appear more intelligible to anyone unfamiliar with the languages involved, but they took roughly 60 seconds and 15 seconds, respectively, to write. Such is the overwhelming power of INTERCAL!

The other major importance of INTERCAL lies in its seemingly inexhaustible capacity for amazing one's fellow programmers, confounding programming shop managers, winning friends, and influencing people. It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:

DO :1 <- #0¢#256
any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course happened to turn up, as bosses are wont to do. The effect would be no less devastating for the programmer having been correct.

The infamous ROT-13 program

Yes, this is it, the ROT-13 program I wrote in INTERCAL because I couldn't get my Pascal to compile on Unix and I didn't know C yet. It's been described on alt.folklore.computers as "4 pages of completely indecipherable code". Two of these stuck together make a decent "slowcat" for viewing VT-100 animations. [Note: Computers have sped considerably since, destroying this vestige of utility.]

Thanks to Louis Howell for archiving this, as I had deleted my copy in a fit of sanity.

INTERCAL resources

Eric Raymond has, for unclear reasons, put a lot of effort into supporting INTERCAL. His INTERCAL compiler is available at The Retrocomputing Museum (mirror).

Louis Howell had an impressive INTERCAL page that featured several pieces of working INTERCAL code, including an annotated exponentiation program. (archive, mirror)

Here is Matt Dimeo's "99 Bottles of Beer on the Wall" INTERCAL program, and it works. Here is a collection of solutions to the beer problem in many other languages, by Oliver Schade (formerly maintained by Tim Robinson).

Here is a self-replicating INTERCAL program written by Frederic Stark. Brian Raiter also has made a self-replicating program, which you can find explained in detail on his INTERCAL page.

Yahoo! and dmoz also have collections of pointers to INTERCAL pages that you can peruse.

My home page