用深奥又冷门的语言写Hello World是什么样的?
Malbolge
Malbolge (以地獄第八圈命名)被設計為最難、最深奧的編程語言。除其他功能外,代碼在設計上可以自我修改,指令的效果取決於其在內存中的地址。
Brainfuck
Brainfuck是為極端簡約而設計的,會導致代碼混亂,程序僅包含八個不同的字符。以下程序輸出“Hello, world!”:
除此以外的所有字符都將被忽略。
Whenever
Whenever是David Morgan-Mar的一種深奧的編程語言,沒有緊迫感。程序代碼就像一個待辦事項列表:解釋器可以自由地按照它選擇的任何順序執行語句。但是,一行可能包含一個子句,指定在某些條件成立之前無法執行該行。沒有控制流結構或變量。 ArnoldC
一種基於阿諾·施瓦辛格的名言的編程語言。 Befunge
Befunge 允許指令指針通過代碼在多個維度中漫遊。例如,以下程序通過將字符按相反順序壓入堆棧來顯示“Hello World”,然後在順時針循環指令
>
、
:
、
v
、
_
、
,
、和
^
的循環中打印字符。
Befunge 有很多版本,最常見的是 Befunge-93,因其發佈於 1993 年而得名。 LOLCODE
LOLCODE 的設計類似於lolcats的語音。以下是“Hello World”示例:
雖然LOLCODE 的語義並不罕見,但它的語法被描述為一種語言現象,代表了編程中非正式語音和網絡俚語的一個不尋常的例子。 Shakespeare
Shakespeare的目的是讓節目看起來像莎士比亞戲劇。例如,以下語句的程序輸出結果便是"Hello World":
Piet
以下是 Piet 中的"Hello World"程序。
Piet是David Morgan-Mar設計的一種語言,他的程序是看起來像抽象藝術的位圖。執行過程由圍繞圖像移動的“指針”引導,從一個連續的彩色區域移動到下一個。當指針退出區域時執行程序。 有 20 種顏色的行為被指定: 18 種“彩色”顏色,按 6 步色調循環和 3 步亮度循環排序;以及黑白,未排序。當退出一種“彩色”顏色並進入另一種顏色時,所執行的過程由色調和亮度變化的步數決定。黑色不能進入;當指針試圖進入黑色區域時,選擇下一個塊的規則就會改變。如果嘗試了所有可能的規則,程序就會終止。圖像邊界之外的區域也被視為黑色。白棋不執行運算,但允許指針“通過”。除指定的 20 種顏色之外的顏色的行為由編譯器或解釋器決定。 變量作為有符號整數存儲在內存中的單個堆棧中。大多數指定的過程處理該堆棧上的操作,而其他過程則處理輸入/輸出以及編譯指針移動的規則。 皮特(Piet)以荷蘭畫家皮特·蒙德里安(Piet Mondrian)的名字命名。最初的名稱“蒙德里安”已被開源統計數據可視化系統佔用。 Chef
Chef 是David Morgan-Mar創建的一種面向堆棧的編程語言,旨在使程序看起來像烹飪食譜。程序由標題、變量及其數據值列表以及堆棧操作指令列表組成。一個開玩笑的設計原則指出,“程序食譜不僅應該生成有效的輸出,而且應該易於準備且美味”,Morgan-Mar 指出,一個包含“101 個雞蛋”和“111 杯油”的Hello World 程序。 Whitespace
Whitespace 僅使用空白字符(空格、製表符和回車),忽略所有其他字符,因此可用於註釋。這與許多傳統語言相反,傳統語言不區分不同的空白字符,將製表符和空格視為相同。它還允許將空白程序隱藏在 C 等語言的程序源代碼中。 光看下面這張圖大家不理解什麼意思,下面的圖也不完整:
下面是一個帶註釋的空白程序,它只打印“Hello, world!” ,其中每個
Space
『紅空格』、
Tab
『藍空格』或 Linefeed 字符前面分別帶有標識註釋“S”、“T”或“L”:
Chicken
Chicken 只有三個標記,單詞“chicken”、“”和“\n”。編譯器將一行上的“雞”數量解釋為操作碼指令,用於操作堆棧上的數據。一個簡單的雞程序可以包含幾十行,除了無數次重複的“雞”這個詞之外什麼都沒有。Chicken 是由 Torbjörn Söderstedt 發明的,他從一篇科學論文的模仿中獲得了這種語言的靈感。 Intercal
INTERCAL是“Compiler Language With No Pronounceable Acronym”的縮寫,創建於 1972 年,是為了諷刺當時各種編程語言的各個方面。 Unlambda
Unlambda是一種基於SKI 演算的簡約函數式編程語言,但結合了一流的延續和命令式 I/O(輸入通常需要使用延續)。 FRACTRAN
FRACTRAN 程序是正分數的有序列表以及初始正整數輸入 {\displaystyle n}。該程序的運行方法是將整數 {\displaystyle n}乘以列表中的第一個分數 {\displaystyle f},其中 {\displaystyle nf}是整數。然後將整數 {\displaystyle n}替換為 {\displaystyle nf}並重複該規則。如果列表中沒有分數在乘以 {\displaystyle n}時產生整數,程序將停止。 FRACTRAN 是由數學家約翰·康威發明的。 PS:{\displaystyle f} 函數f ,{\displaystyle n} 函數n,{\displaystyle nf}函數nf Binary combinatory logic
按照 Unlambda 處理 IO 的方法,BCL 中的“hello world”是:
Binary combinatory logic,也稱為二進制 lambda 演算,是從算法信息論的角度設計的,允許以最少的方式實現最密集的代碼,具有 29 字節自解釋器、21 字節素數篩和112 字節Brainfuck 解釋器。 GolfScript
GolfScript(一種為高爾夫代碼創建的語言)中的程序由項目列表組成,每個項目在遇到時都會被推入堆棧,但以代碼塊作為其值的變量除外,在這種情況下將執行代碼。 JSFuck
官網:https://jsfuck.com/
JSFuck是一種深奧的JavaScript編程風格,其中代碼僅使用六個字符編寫:
[
、
]
、
(
、
)
、
!
和
+
。與需要自己的編譯器或解釋器的 Brainfuck 不同,JSFuck 是有效的 JavaScript 代碼,這意味著 JSFuck 程序可以在任何解釋 JavaScript 的Web 瀏覽器或引擎中運行。由於其能夠逃避 XSS 檢測過濾器,它已被用於許多跨站點腳本攻擊。 Qalb قلب
قلب音譯為Qalb、Qlb和Alb,是一種函數式編程語言,允許程序員完全用阿拉伯語編寫程序。[1]它的名字意思是“心”,是阿拉伯語中的遞歸首字母縮略詞,意思是“Qalb:編程語言”(قلب: لغة برمجة, Qlb: Lughat Barmajah)。它由紐約市Eyebeam 藝術+技術中心的計算機科學家 Ramsey Nasser 於 2012 年開發,既是一種藝術努力,也是對絕大多數編程語言中以英語為母語的偏見的回應,這些語言使用英語單詞表達其基本概念。 Rockstar
Rockstar 是一種計算機編程語言,旨在創建也是髮絲金屬強力民謠的程序。它是由迪倫·貝蒂創作的。 翻譯:Junkyun_曉瑤 浏览器:Chrome