我們平時都在談論 c、c ++、Java、Python 等程式語言,其實還有些語言不僅對於大多數軟體開發人員來說都很難,而且幾乎是不可理解的。
這些語言被稱為深奧難懂的程式語言(或晦澀語言)。
晦澀語言並不是為普通的軟體開發而設計的。它們的設計目的是作為概念證明,或只是開個玩笑。
這裡列出五種最難懂的晦澀語言的清單。我嘗試用每種語言執行了「Hello World!」程序,非常有趣。
本文最初發布於 Medium(《5 Most Difficult Programming Languages in the World》),經 InfoQ 翻譯並分享。
Malbolge
Malbolge 由 Ben Olmstead 於 1998 年發明。這種晦澀語言被認為是最複雜的程式語言。
據說 Malbolge 程式語言的作者從未使用該語言編寫任何程序。Olmstead 發明該語言近兩年後,Malbolge 中的 hello world 代碼才出現。
這是在 Malbolge 中列印「Hello World!」的代碼段。
這是輸出:
由作者提供—代碼在 tio.run 執行
INTERCAL
Jim Lyon 和 Don Woods 於 1972 年開發了 INTERCAL,它是一種詼諧有趣的程式語言。
它剛開始的名稱是「沒有可發音首字母縮略詞的程式語言」。
INTERCAL 設計了許多讓程式設計師感到沮喪的特性。
例如:它使用修飾符「PLEASE」。如果代碼中不經常使用「PLEASE」,則編譯器可以拒絕該代碼。它將程序視為「不夠禮貌」。如果修飾符「PLEASE」被使用了太多次,則編譯器也將拒絕該代碼,認為其「過於禮貌」。
這是在 INTERCAL 中列印「Hello,World!」的代碼段。
這是輸出:
由作者提供—代碼在 tio.run 執行
Brainfuck
Brainfuck 由 Urban Muller 於 1993 年開發。該語言是為了讓程式設計師消遣娛樂而發明的。
該名稱本身暗示著該程式語言對於任何程式設計師而言都非常難以理解。
整個程式語言僅有八個不同的字符,該語言用這八個字符編寫所有代碼。Muller 開發的原始編譯器僅使用 296 個字節。
這是在 brainfuck 中列印「Hello,World!」的代碼段。
這是輸出:
由作者提供—代碼在 tio.run 執行
COW
COW 由 Sean Heber 於 2003 年開發。看到其 hello world 代碼後,您將了解為什麼這種語言叫做「 COW」。
在難度級別上,COW 與 Brainfuck 相當。與 Brainfuck 相比,它還多了四個命令,即整個語言中有 12 個命令。
這是在 COW 中列印「Hello,World!」的代碼段。
這是輸出:
由作者提供—代碼在 tio.run 執行
Whitespace
Whitespace 由 Chris Morris 和 Edwin Brady 在杜倫大學開發。該語言發布於 2003 年愚人節。
使用該語言編寫任何程序都依賴於空格、制表符和換行符。Whitespace 的解釋器將忽略非空格字符,並將其視為代碼注釋。
這是在 Whitespace 中列印「Hello,World!」的代碼段。
在下面的代碼中,每個空格、制表符或換行符前面都帶有注釋「S」、「T」或「L」。
這是輸出:
由作者提供—代碼在 tio.run 執行
更多
還有很多類似的晦澀語言,你可以訪問本文的參考部來探索一番。
可以使用這個網站,該網站提供幾乎所有語言的編譯器和解釋器。複製參考頁中的代碼,並在該站點中快樂的使用它們。
參考資料:
Esolang wiki: https://esolangs.org/wiki
Malbolge: https://esolangs.org/wiki/malbolge
INTERCAL: https://en.wikipedia.org/wiki/INTERCAL
Brainfuck: https://en.wikipedia.org/wiki/Brainfuck
COW: https://esolangs.org/wiki/COW
Whitespace: https://esolanga.org/wiki/whitespace
英文原文連結:
https://levelup.gitconnected.com/5-most-difficult-programming-languages-in-the-world-549c3cf91b23
延伸閱讀:
少兒編程迎來史上最大單筆融資,程式設計師的內卷從娃娃開始?-InfoQ
關注我並轉發此篇文章,私信我「領取資料」,即可免費獲得InfoQ價值4999元迷你書,點擊文末「了解更多」,即可移步InfoQ官網,獲取最新資訊~