"But I don't want to go among mad people," Alice remarked.
"Oh, you ca'n't help that," said the Cat: "We're all mad here. I'm mad. You're mad."
"How do you know I'm mad?" said Alice.
"You must be," said the Cat, "or you wouldn't have come here."
The names you are about to ignore are true. However, the story has been changed significantly. Any resemblance of the programming language portrayed here to other programming languages, living or dead, is purely coincidental.
The INTERCAL programming language was designed the morning of May 26, 1972 by Donald R. Woods and James M. Lyon, at Princeton University. Exactly when in the morning will become apparent in the course of this manual.
Eighteen years later (give or take a few months) Eric S. Raymond perpetrated a UNIX-hosted INTERCAL compiler as a weekend hack. The C-INTERCAL implementation has since been maintained and extended by an international community of technomasochists, including Louis Howell, Steve Swales, Michael Ernst, and Brian Raiter.
(There was evidently an Atari implementation sometime between these two; notes regarding it got appended to the INTERCAL-72 manual. The culprits have sensibly declined to identify themselves.)
INTERCAL was inspired by one ambition: to have a compiler language
which has nothing at all in common with any other major language. By
"major" was meant anything with which the authors were at all
familiar, e.g., FORTRAN, BASIC, COBOL, ALGOL, SNOBOL, SPITBOL, FOCAL,
SOLVE, TEACH, APL, LISP, and PL/I. For the most part, INTERCAL has
remained true to this goal, sharing only the basic elements such as
variables, arrays, and the ability to do I/O, and eschewing all
conventional operations other than the assignment statement (FORTRAN
The full name of the compiler is "Compiler Language With No Pronounceable Acronym", which is, for obvious reasons, abbreviated "INTERCAL".
The authors are deeply indebted to Eric M. Van and Daniel J. Warmenhoven, without whose unwitting assistance this manual would still have been possible.