~ Office Supplies ~~ Buy Posters ~~ A-Z Products ~~ Website Advertising


INTERCAL programming language - Wikipedia

<<Up     Contents

INTERCAL programming language

Redirected from INTERCAL

INTERCAL is a programming language parody. It is said by the authors to stand for "Compiler Language With No Pronounceable Acronym". INTERCAL was designed by Don Woods and James Lyons[?], two Princeton University students, in 1972 and is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. An excerpt from the INTERCAL Reference Manual will make the style of the language clear:

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 have happened to turn up, as bosses are wont to do. The effect would be no less devastating for the programmer having been correct.

The INTERCAL manual also contains such gems as

Caution! Under no circumstances confuse the mesh with the interleave operator, except under confusing circumstances!

INTERCAL has many other peculiar features designed to make it even more unspeakable: uses statements as "COME FROM", "FORGET", and "PLEASE" and calls single and double quotes "sparks" and "rabbit ears" respectively. The equivalent of a "half mesh" or equals sign in most programming languages is a "<-", referred to as "gets" and made up of an "angle" and a "worm".

The Woods-Lyons implementation was actually used by many (well, at least several) people at Princeton. The language has been recently reimplemented as C-INTERCAL and is consequently enjoying an unprecedented level of unpopularity; there is even an alt.lang.intercal newsgroup devoted to the study and ... appreciation of the language on Usenet.

The traditional "Hello, world!" program, written in C as

        #include <stdio.h>
        int main(void) { 
          printf("Hello, world!"); 
          return 0; 
        }

appears as

        DO ,1 <- #13
        PLEASE DO ,1SUB#1 <- #234
        DO ,1SUB#2 <- #112
        DO ,1SUB#3 <- #112
        DO ,1SUB#4 <- #0
        DO ,1SUB#5 <- #64
        DO ,1SUB#6 <- #194
        DO ,1SUB#7 <- #48
        PLEASE DO ,1SUB#8 <- #22
        DO ,1SUB#9 <- #248
        DO ,1SUB#10 <- #168
        DO ,1SUB#11 <- #24
        DO ,1SUB#12 <- #16
        DO ,1SUB#13 <- #214
        PLEASE READ OUT ,1
        PLEASE GIVE UP

in INTERCAL.

Perhaps the weirdest thing about INTERCAL is that, it is Turing-complete; that is, it can perform all of the calculations that a sane programming language can.

See also: Esoteric programming languages, Befunge.

External links


Part of an earlier version of this article contains text from The Jargon File 4.2.3 Mar 2001 (http://www.tuxedo.org/~esr/jargon/). Public Domain. Gareth Owen

wikipedia.org dumped 2003-03-17 with terodump




 
 
4 carat RARE Honey Yellow Gold BASTNAESITE Facet Cab Rough Golden gemstone Faceting gem jewel PRETTY
 4 carat RARE Honey Yellow Gold BASTNAESITE Cab Golden ing jewel PRETTY 
 
29 carats Tigereye red yellow gold TigerIron Jasper gem tumble polished Cabbing cab tiger iron rough
 29 carats Tigereye red yellow gold TigerIron Jasper tumble polished Cabbing cab tiger iron  
 
35 carat grape STICHTITE gemstone Cabbing lapidary tumble polished rough gem stone jewelry 7 gram 2
 35 carat grape STICHTITE Cabbing lapidary tumble polished jewelry 7 gram 2 
 
33 carats blue Tanzanite zoisite rough crystal specimen jewelry cabbing gemstone 6 grams lot parcel
 33 carats blue Tanzanite zoisite crystal specimen jewelry cabbing 6 grams lot parcel 
 
Brilliant WHITE Clear TOPAZ jewel Loose natural cabochons cut polished jewelry gemstones 4x2 half mm
 Brilliant WHITE Clear TOPAZ jewel Loose cabochons cut polished jewelry 4x2 half mm