Penguin
Annotated edit history of INTERCAL version 5, including all changes. View license author blame.
Rev Author # Line
2 AristotlePagaltzis 1 ;: ''INTERCAL. The language designed to be Turing-complete but as fundamentally unlike any existing language as possible. Expressions that look like line noise. Control constructs that will make you gasp, make you laugh, and possibly make you hurl. Data structures? We don't need no steenking data structures!'' %%% -- EricRaymond
5 AristotlePagaltzis 2
3 ;: ''INTERCAL is a programming language like no other. This is good, or at least, it is good that other languages are as unlike INTERCAL as possible.'' %%% -- [The Pit|http://www.webcom.com/nazgul/intercal.html]
1 SamJansen 4
2 AristotlePagaltzis 5 ;: ''The obvious choice was INTERCAL (I'm still quite surprised that I'm the only one who picked it -- most people did Java??). Anyway, it was not favourably received...when [[the professor] handed it back, he said, "Ah. I see you're someone with a sense of humour. Unfortunately for you, I'm not."'' %%% -- Alexander Garrett, about [a paper he wrote for his Spring 1997 Programming Languages: Theory and Design class|http://catb.org/~esr/intercal/paper.html]
1 SamJansen 6
2 AristotlePagaltzis 7 INTERCAL was originally developed in 1972 and lives on through the C-INTERCAL compiler. More information can be found at the [INTERCAL Resources Page|http://www.catb.org/~esr/intercal/].
1 SamJansen 8
2 AristotlePagaltzis 9 Rather than trying to describe the language, it's probably best to show an example. The code below was written in Tri-INTERCAL: it merely counts to 10. You may also want to see [a sample implementation of ROT13|http://www.ofb.net/~jlm/rot13.i] in [INTERCAL]. Then again, you may not. ("4 pages of completely indecipherable code", according to [its author|http://www.ofb.net/~jlm/intercal.html].)
1 SamJansen 10
11 DO ,1 <- #16
12 DO :2 <- #6490$#55022
13 PLEASE DO (44) NEXT
14 DO :2 <- #5631$#54733
15 PLEASE DO (44) NEXT
16 DO :2 <- #14637$#40039
17 PLEASE DO (44) NEXT
18 DO :2 <- #58550$#53112
19 PLEASE DO (44) NEXT
20 DO .1 <- #1
21 PLEASE DO (99) NEXT
22 DO GIVE UP
23 (44) DO REINSTATE COMING FROM
24 (19) DO COME FROM (68)
25 DO ABSTAIN FROM (19)
26 (31) DO COME FROM (34)
27 DO ABSTAIN FROM (31)
28 (88) DO COME FROM (65)
29 PLEASE ABSTAIN FROM (88)
30 DO COME FROM (44)
31 PLEASE DO (123) NEXT
32 DO .3 <- ':2~"#4$#13"'
33 DO :2 <- ':2~"#29520$#29511"'
34 DO ,1 SUB .1 <- .3
35 (65) DON'T GIVE UP
36 (34) PLEASE DON'T GIVE UP
37 (68) DO NOTE THAT THIS FUNNY CODE ACTUALLY WORKS
38 PLEASE RESUME #1
39 (99) DO COME FROM (69)
40 DO READ OUT ,1
41 DO ,1 SUB #1 <- #180
42 DO READ OUT .1
43 DO .2 <- "?.1$#10"~"#0$#29524"
44 PLEASE DO (15) NEXT
45 (69) PLEASE DO (123) NEXT
46 (42) DO RESUME .9
47 (123) PLEASE .8 <- #1
48 DO COME FROM (81)
49 DO .9 <- '?"V!1~.8'$#1"~#1'~#1
50 DO .1 <- "^.1$.8"~"#0$#29524"
51 PLEASE DO (42) NEXT
52 (81) DO .8 <- !8$#0'~"#9841$#1"
53 (15) PLEASE RESUME '?"!2~.2'~#2"$#1'~#1
3 AristotlePagaltzis 54
55 ----
4 AristotlePagaltzis 56 CategoryProgrammingLanguages, CategoryObfuscatedProgrammingLanguages