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