
你听说过 INTERCAL 吗?如果没有,也别难过。这门相对晦涩的语言可以追溯到 1972 年,其目标是提高读写难度。它是 brainf**k 等系统以及其他糟糕语言的智力源泉。现在,你可以通过找到的打印件阅读INTERCAL-72 源代码。如果你能读懂 SPITBOL,那会很有帮助。SPITBOL 是另一种晦涩的语言,它是 SNOBOL(类似于老式的非 Unix awk 程序)的编译版本。
INTERCAL 有多奇怪?嗯,其中一个语句是 PLEASE。如果你用得不够多,你会冒犯解释器,然后它会忽略你的程序。但如果你用得太多,那你就是在耍嘴皮子,因此你的程序会再次被忽略。如果你觉得 GOTO 是个坏主意,你肯定会讨厌 COME FROM,尽管它是 INTERCAL 的后续版本中的。
这是用户手册中的示例程序:
1 执行 (5) 下一步 2(5)请忘记#1 3 请填写:1 4 DO .1 <- 'V-":1~'#32768c/#0'"c/#1'~#3 5 做 (1) 下一步 6 DO :1 <- "'V-":1~'#65535c/#0'"c/#65535' 7 ~'#0c/#65535'"c/"'V-":1~'#0c/#65535'" c 8 /#65535'~'#0c/#65535'" 9 做:2 <- #1 10 请执行 (4) 下一步 11(4)请忘记#1 12 DO .1 <- "V-':1~:2'c/#1"~#3 13 DO :1 <- "'V-":1~'#65535c/#0'"c/":2~'#65535 1 c 14 /#0'"'~'#0c/#65535'"c/"'V-":1~'#0 c 15 /#65535'"c/":2~'#0c/#65535'"'~'#0c/#65535'" 16 做(1)下一步 17 DO :2 <- ":2~'#0c/#65535'" c 18 /"'":2~'#65535c/#0'"c/#0'~'#32767c/#1'" 19 做(4)下一步 20 (2) 继续 .1 21 (1) 请 (2) 下一步 22 请忘记#1 23 请读出:1 24 请执行 .1 <- 'V-"':1~:1'~#1"c/#1'~#3 25 做(3)下一步 26 请执行 (5) 下一步 27(3)做(2)下一步 28 请放弃
有趣的是,你可以获得适用于现代系统的 SPITBOL,因此完全可以在现代机器上运行此版本的 INTERCAL。为什么?这需要你自己来回答。
所有这些的核心都在GitHub上。如果您尝试使用,还可以找到手册的链接。我们之前研究过INTERCAL和其他类似的语言。但是,您可以使用更传统的语言编写难以理解的代码。
原文: https://hackaday.com/2025/06/02/the-1972-intercal-compiler-revealed/