right|thumb|[[Don Woods (programmer)|Don Woods, one of the authors of INTERCAL, in 2010]]
thumb|Jim Lyon, the other author of INTERCAL, in 2005
The Compiler Language With No Pronounceable Acronym (INTERCAL) is an esoteric programming language that was created as a parody by Don Woods and , two Princeton University students, in 1972. It satirizes aspects of the various programming languages at the time, as well as the proliferation of proposed language constructs and notations in the 1960s.
There are two maintained implementations of INTERCAL dialects: C-INTERCAL (created in 1990), maintained by Eric S. Raymond and Alex Smith, and CLC-INTERCAL, maintained by Claudio Calvelli.
History
According to the original manual by the authors,
The original Princeton implementation used punched cards and the EBCDIC character set. To allow INTERCAL to run on computers using ASCII, substitutions for two characters had to be made: <code>$</code> substituted for <code>¢</code> as the mingle operator, "represent[ing] the increasing cost of software in relation to hardware", and <code>?</code> was substituted for <code>⊻</code> as the unary exclusive-or operator to "correctly express the average person's reaction on first encountering exclusive-or".
Details
INTERCAL was intended to be completely different from all other computer languages. In the words of the original manual:
Common operations in other languages have cryptic and redundant syntax in INTERCAL. From the INTERCAL Reference Manual:
Documentation
thumb|The "circuitous diagram" from the INTERCAL Reference Manual, purportedly to explain the operation of the "select" operator
The INTERCAL Reference Manual contains many paradoxical, nonsensical, or otherwise humorous instructions:
The manual also contains a "tonsil", as explained in this footnote: "4) Since all other reference manuals have appendices, it was decided that the INTERCAL manual should contain some other type of removable organ." Before the identifier, an optional line number (an integer enclosed in parentheses) can be given; after the identifier, a percent chance of the line executing can be given in the format <code>%50</code>, which defaults to 100%.
The authors of C-INTERCAL also created the TriINTERCAL variant, based on the Ternary numeral system and generalizing INTERCAL's set of operators.
CLC-INTERCAL has a library called INTERNET for networking functionality including being an INTERCAL server, and includes features such as Quantum Intercal, which enables multi-value calculations in a way purportedly ready for the first quantum computers.
In early 2017 a .NET Implementation targeting the .NET Framework appeared on GitHub. This implementation supports the creation of standalone binary libraries and interop with other programming languages.
Impact and discussion
In the article "A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics", INTERCAL is described under the heading "Abandon all sanity, ye who enter here: INTERCAL". The compiler and commenting strategy are among the "weird" features described:
In "Technomasochism", Lev Bratishenko characterizes the INTERCAL compiler as a dominatrix:
References
External links
- Official website of C-INTERCAL
- INTERCAL Resources on the Web, including several implementations
- Computerworld Interview with Don Woods on INTERCAL
- Paper on Abstraction and Modularity in INTERCAL
