當我們談論 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