世界上最難的5種程式語言

2020-12-11 InfoQ技術實驗室

我們平時都在談論 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官網,獲取最新資訊~

相關焦點

  • 世界上第一種古典漢語程式語言
    用這種語言編寫的程序包括易經中的算命程序圖片:用文言文編寫的繪製出曼德爾布羅特集合的程序,並呈現出來世界上第一種基於中國文言文的程式語言只有大約一個月的歷史,志願者已經用它編寫了幾十個程序,比如一個基於古代中國算命算法的程序
  • 13種最為荒謬的程式語言
    這是一個娛樂貼,不要去問這些程式語言到底有沒有什麼實用價值,可以讓我們感嘆一下神奇和開發者獨特的思維,這就是實用價值。1、LolcodeLOLCODE是一種建立在高度縮寫的網絡英語之上的程式語言,一般來說如果一個人能理解這種網絡英語就能在未經訓練的情況下讀懂LOLCODE程序原始碼。
  • 最適宜初學者學習的幾種程式語言
    創業者Roger Huang將為大家推薦一些程式語言,並分享個人的經驗與看法。Huang是一名連續創業者,目前他正專注於他的第二個創業項目,並給予他人職業成長的建議。有幾個人曾經問我,有哪些最有用或最好的程式語言適宜學習?  姑且略過HTML/CSS不談,我認為答案取決於你想通過編程來做什麼。
  • 世界上最流行的程式語言,你知道的有幾種呢
    世界上最流行的程式語言,至少根據devops biz Datree.io,它不是Java,JavaScript,也不是Python。相反,它是YAML,是「YAML不是標記語言」的遞歸首字母縮寫。這是對「程式語言」的定義的延伸,因為YAML 是JSON的超集,對標籤的容忍度很小,更恰當地被描述為數據序列化語言,而且並不是普遍受到關注的語言。它通常用於容器,包和其他時尚技術的配置文件中。HTML也被稱為程式語言 - 儘管存在分歧,但還有一個概念驗證HTML專用計算器 - 因此Datree的妄想是優先考慮的。
  • 微軟:Excel公式是世界上使用最廣泛的程式語言
    LAMBDA 允許使用 Excel 自身的公式語言自定義功能,而過去,Excel 中需要通過 JS 等語言編寫自定義函數。同時,LAMBDA 還可以實現一個函數對另一個函數的調用,通過單個函數調用可以部署的功能將不受限制。對於新功能的意義,微軟稱:LAMBDA 將徹底改變在 Excel 中構建公式的方式。
  • 世界上最難學的5種語言,阿拉伯語僅排第三,漢語排第幾?
    寫在前面:世界上最難學的5種語言,阿拉伯語僅排第三,漢語排第幾?隨著中國對外開放程度的擴大,中國人民學習外語的興趣,可以說是越來越濃了。但是世界上有那麼多的語言,究竟學哪一種比較好呢?大部分人選擇學英語,因為考試要考。
  • 世界上最好的程式語言,剛剛度過了25周歲生日
    這些改變提高了 PHP 的入門門檻,引發了一部分用戶的不滿,但也有人為 PHP 語言性能的提升和社區的成長感到欣慰。在之後的幾年裡,PHP 7 又經過了幾次迭代。今年 5 月 14 日,這門語言發布了其最新版 7.4.6 版。今年 4 月,PHP 官方還公布了 PHP 8.0 版本的發布時間表。
  • 13 種程式語言名稱的來歷
    最初其名為Fourth,不巧,IBM1130最多支持5個字符的文件名,「u」去而「Forth」生。Perl被 譽為「瑞士軍刀」,以靈活性和高效性著稱,於20世界80年代由Larry Wall發明。Larry Wall的構思是這個名字應該短,並充滿正面意味。想到pearl前,他還考慮過他妻子的名字Gloria。
  • 世界上最難學的語言是什麼?
    聯合國教科文組織公布的世界十大難學語言中,漢語名列榜首。想想我們都學會了世界上最難的語言了,你還怕別的嗎?來看看各國群眾認為什麼語言才是天書吧!發音優美的語言在國際語言學界,日語,義大利語和西班牙語,是三個公認的發音優美的語言,其中,日語更是排在第一位。
  • 世界上最難學的十大語言
    原標題:聯合國公布世界上最難學的十大語言 在語言學上,評價一種語言的發音是否 優美,有一個公認的標準,那就是輔音數量和元音數量的比例,比較合適,最好是一比一,比如「さくら」,它的發音是 [s]a[k]ua(我故意把輔音放在方括號中),您看,一個輔音帶一個元音,正好是一比一,很規範,這樣的語言,發音就好聽。相反,您看這個英語(論壇)單詞 script,它的發音是[skr]i[pt],五個輔音帶一個元音,這樣的語言,發音就難聽。
  • 自動化程式語言的未來
    IEC 委員會通過IEC61131 標準(主要是第三部分(IEC 61131-3)中的語言)來解決這一需求。標準中所定義的可以互換的4種程式語言——梯形圖、功能塊圖、結構化文本和指令列表,還有一種被稱之為順序功能圖的程序組織語言。每種語言都有自己的優點和缺點,它們可以在某個程序中一起使用,以便更好地支持不同的程序功能。
  • 世界上最難學的五種語言!漢語竟然只能屈居第二?!
    如果提起世界上的語言種類,你能想到哪些?漢語、英語、日語、韓語、法語、德語、俄語、西班牙語、希臘語、阿拉伯語……除了這些知名度很高的語言,你還能想到哪些呢?是不是又要默默打開百度了?而世界三大語言分別是英語、漢語和西班牙語。英語是國際指定的官方語言,是世界上最廣泛的第一語言,也有不少人將英語作為第二語言,世界上80%的網頁都是英語網頁。
  • 第1名毫無爭議 世界上最難學的10種語言
    第8名︰挪威語,世界上最難學的語言之一,挪威語的語音比較複雜,在挪威並不存在官方認定的標準的挪威口語,在任一時期,大多數挪威人都會說自己的方言,挪威語跟丹麥語、瑞典語、特別跟丹麥語十分接近,這3種語言基本上可以互通。    第7名︰德語,全球使用德語各方言的人數以及德語的學習者超過1億7千萬,德語有30個字母,42個音素,名詞又分陽性,中性,陰性三種。
  • 哪種程式語言更適合初學者!
    編程初學者先學什麼這是一個讓很多計劃學習編程的學生糾結的問題,會有人說到高大數據離不開JAVA啦,搞人工智慧離不開Python啦等等。說的都沒有錯,那到底如何選擇呢?事實上,很難想像一名合格的程式設計師只掌握了一種程式語言,因為大型項目都不是某一種語言獨立擔當的。多數程式設計師都是掌握了多種語言,按需使用的。所以入門時學習那種語言不是那麼重要,因為當熟練掌握了一種語言後,再學習其他語言會容易得多。當然既然大家都有選擇方面的問題,小編也給出了以下的建議。
  • 程式語言這麼多,如何選擇一門適合自己的程式語言?
    一、Java最流行與一年前一樣,Java仍然是最流行的程式語言。據TIOBE的數據顯示,幾十年來,Java比其他語言更常名列榜首。許多知名公司使用Java來開發軟體和應用程式,所以如果你碰巧使用Java,絕對不必為找工作而苦惱。
  • 2020年,頂尖程式設計師最應該掌握的7種程式語言
    蘿蔔白菜,各有所愛,AI 工程師和科學家可以根據項目需要,從眾多程式語言中選擇最適合自己的。有人曾經將編程比作做菜,那程式語言就是首先要準備的食材或廚具。C:一把菜刀一口炒鍋,一個很好用的灶,隔壁有個菜市場。
  • 5月編程最新語言指數排名 java不再是第一 php才是未來最好語言
    前幾天谷歌CEO皮查伊在會議展示了人工智慧的成果,在人工智慧上谷歌領先世界,這次的展示讓人工智慧重新改變的人們認識,也直接導致人工智慧程式語言Python的熱度在5月排名第一。從5月排名指數上看出來java首次被Python超越成為第一寶座,PHP挺近第四位,緊接這才是c#。每個人都說PHP是世界上最好的語言,在PHP每次指數都不斷提高下,不久將來PHP才是最好語言。
  • Upwork 發布 15 種薪水最高程式語言榜單
    在線人才平臺 Upwork 表示,其通過分析 Upwork.com 上最高的平均時薪,整理出了技術專業崗位收入最高的 15 種程式語言。其中,Objective-C、Golang 和 Windows PowerShell分別佔據了這一薪水榜單的前三甲,Ruby 和 Java 則是年度需求最高的兩種程式語言。數據顯示,儘管 COVID-19 對經濟造成了影響,但開發人員仍能夠憑藉獨立專業人員的身份以獲得高收入的空缺職位。
  • vb程式語言是做什麼用的_VB程式語言有哪些
    最早的程式語言是在電腦發明之後產生的,當時是用來控制提花織布機及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的程式語言,而且每年仍有新的程式語言誕生。很多程式語言需要用指令方式說明計算的程序,而有些程式語言則屬於聲明式編程,說明需要的結果,而不說明如何計算。   程式語言的描述一般可以分為語法及語義。
  • 手機上的APP都是用什麼程式語言寫的?
    今天想和大家分享的內容是和我們手機上APP相關的,它們都是用什麼程式語言寫的呢? 兩大移動端:Android和IOS,我們就不多說了,下面我們從另一個角度進行分類。 第一類:針對單一APP開發的語言,即開發一套代碼只能運行在一個平臺上。 Kotlin是一種在Java虛擬機上運行的靜態類型程式語言,被稱之為Android世界的Swift。