当我们谈论 c,c++ ,Java,Python的时候,有些语言不仅很难,而且对于大多数软件开发者来说几乎是无法理解的。
这些语言被称为深奥的编程语言,英文称为esoteric programming language,简称esolang。
下面是五种最难理解的语言,我试着用这些语言编写程序Hello World,貌似非常有趣的样子。
Malbolge
Malbolge 是 Ben Olmstead 在1998年发明的,这种 esolang 被认为是最复杂的编程语言。
据说,Malbolge 编程语言的作者从来没有用这种语言编写过任何代码,而且Malbolge的 hello world 代码出现在 Olmstead 发明这门语言两年之后。
这是Malbolge 打印“ Hello World! ”的代码片段。
输出结果如下:
INTERCAL
INTERCAL是“Compiler Language With No Pronounceable Acronym”的缩写,Jim Lyon和Don Woods在1972年发明了INTERCAL,讽刺了当时各种编程语言的很多方面,以及在20世纪60年代拟定的语言结构和注译。
INTERCAL有很多看起来令人无语的设计。
例如: 它使用诸如“ PLEASE”之类的修饰语,如果代码中不经常使用“ PLEASE” ,编译代码就会报错。它认为这个项目不够礼貌,如果修饰语“ PLEASE”过多,编译器也会报错,他认为你“过分礼貌”... ...
下面是 INTERCAL 中打印“ Hello,World! ”的代码片段。
输出结果如下:
Brainfuck
Brainfuck是由 Urban Muller 于1993年开发的,这种语言就是程序员无聊发明的。中文翻译:真他妈的... ...,谷歌给我提供了一个新思路,叫做脑干... ...
整个语言只包含8个不同的字符,用于实现任何代码,由 Muller 开发的原始编译器只使用了296个字节。
这种语言,是一种按照“Turing complete(图灵完备)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言。
这是Brainfuck 打印“ Hello World! ”的代码片段。
输出结果如下:
另外对于这个语言,知乎上还有一个很有意思的视频,可以搜索看看。
COW
Cow是由Sean Heber在2003年发明的,一旦你看到 hello world 代码,你就会明白为什么这种语言被命名为COW。
Cow在难度水平上与 Brainfuck 相似,与 Brainfuck 相比,它又多了4条命令,也就是说,整个语言中有12条命令。
下面是用 COW 打印“ Hello,World! ”的代码片段。
输出结果如下:
Whitespace
Whitespace是由Chris Morris 和 Edwin Brady 在杜伦大学开发的,而且是在2003年的愚人节发布的。
大部分的现代程式设计语言都不将空白字符视为语法的一部分,但Whitespace却只把空白格、制表符和换行符作为语法的一部分,Whitespace的解释器忽略所有非空白字符,并将其视为代码注释。
下面是用空格打印“ Hello World! ”的代码片段。在下面的代码中,每个空格、制表符或换行符前面分别加上注释“ s”、“ t”或“ l”。
输出结果如下:
Image for post
最后,这个网站还有更多的esolang,可以自己去尝试玩玩,都挺有意思的,另外知乎有个话题也叫做esolang,里面的帖子也不少,感兴趣的也可以去看看。
最后网友表示:“看到cow,我真的是笑yue了”,那么你觉得最难的是那种编程语言?55