INTERCAL

[4] According to the original manual by the authors,[5] The full name of the compiler is "Compiler Language With No Pronounceable Acronym", which is, for obvious reasons, abbreviated "INTERCAL".The original Princeton implementation used punched cards and the EBCDIC character set.

[5] In recent versions of C-INTERCAL, the older operators are supported as alternatives; INTERCAL programs may now be encoded in ASCII, Latin-1, or UTF-8.

From the INTERCAL Reference Manual:[5] It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem.

A Sieve of Eratosthenes benchmark, computing all prime numbers less than 65536, was tested on a Sun SPARCstation 1 in 1992.

"[5] The INTERCAL manual gives unusual names to all non-alphanumeric ASCII characters: single and double quotes are 'sparks' and "rabbit ears" respectively.

[4][9] Comments can be achieved by using the inverted statement identifiers involving NOT or N'T; these cause lines to be initially ABSTAINed from so that they have no effect.

However, each of these variables has its own stack on which it can be pushed and popped (STASHed and RETRIEVEd, in INTERCAL terminology), increasing the possible complexity of data structures.

There is no operator precedence; grouping marks must be used to disambiguate the precedence where it would otherwise be ambiguous (the grouping marks available are ' ("spark"), which matches another spark, and " ("rabbit ears"), which matches another rabbit ears; the programmer is responsible for using these in such a way that they make the expression unambiguous).

[5] INTERCAL statements all start with a "statement identifier"; in INTERCAL-72, this can be DO, PLEASE, or PLEASE DO, all of which mean the same to the program (but using one of these too heavily causes the program to be rejected, an undocumented feature in INTERCAL-72 that was mentioned in the C-INTERCAL manual),[9] or an inverted form (with NOT or N'T appended to the identifier).

[9] The authors of C-INTERCAL also created the TriINTERCAL variant, based on the Ternary numeral system and generalizing INTERCAL's set of operators.

[13] CLC-INTERCAL has a library called INTERNET for networking functionality including being an INTERCAL server, and also includes features such as Quantum Intercal, which enables multi-value calculations in a way purportedly ready for the first quantum computers.

This implementation supports the creation of standalone binary libraries and interop with other programming languages.

This "forgiving" feature makes finding bugs very difficult; it also introduces a unique system for adding program comments.

The programmer merely inserts non-compileable text anywhere in the program, being careful not to accidentally embed a bit of valid code in the middle of their comment.In "Technomasochism",[15] Lev Bratishenko characterizes the INTERCAL compiler as a dominatrix: If PLEASE was not encountered often enough, the program would be rejected; that is, ignored without explanation by the compiler.

Don Woods , one of the authors of INTERCAL, in 2010
Jim Lyon, the other author of INTERCAL, in 2005
The "circuitous diagram" from the INTERCAL Reference Manual, purportedly to explain the operation of the "select" operator